Concordo con Mauro. Un'alternativa (ma a me non piace) è avere un ETL che ti aggrega tutto su di un unico database che poi viene acceduto da EF, ma in questo modo non hai i dati sempre aggiornati.
Se ci metti un IRepository<T> puoi giocare con un motore di inversione di controllo per fare si che un IRepository<Customer> ti vada su db e IRepository<Qualcosaltro> vada tipo su file, ma non è semplice da gestire, anche perchè un eventuale join tra le parti come le risolvi? Ovvero se devi joinare una cosA che sta su db ed una su file... la ved non banale.
alk.
Concordo con Mauro.
Alk.