Sto lavorando su un progetto che ha un proprio database chiamandolo InternalDb, ma anche esegue una query su altri due database, chiamandoli ExternalDb1 ed ExternalDb2. Sia ExternalDb1 che ExternalDb2 sono effettivamente richiesti da alcuni altri progetti. Mi chiedo quale sia l'approccio migliore per affrontare questo aspetto?
Attualmente, ho appena creato un progetto per ciascuno di questi database esterni e poi generato Edmx ed entità utilizzando l'approccio entity-framework. Il mio pensiero era che potessi quindi includere questi progetti in una delle mie soluzioni che richiedono l'accesso a questi database. Inoltre, non ho livelli aziendali separati. Ho solo una soluzione come di seguito:
Project.Domain
ExternalDb1Project.Domain
ExternalDb2Project.Domain
Project.Web
Quindi i miei progetti di dominio contengono l'accesso ai dati così come i POCO generati da Entity Framework e qualsiasi logica aziendale. Ma non sono sicuro che questo sia un buon approccio. Ad esempio, se voglio fare la convalida nel mio Project.Domain sulle entità in InternalDb, va bene. Ma se voglio fare Validation per entità da uno dei due ExternalDbs, allora mi chiedo dove dovrebbe andare? Per essere più specifici, recupero i dipendenti da ExternalDb1Project.Domain. Tuttavia, voglio essere sicuro che siano attivi. Dove dovrebbe andare questa convalida?
Come progettare un progetto come questo ad alto livello? Inoltre, voglio essere certo di utilizzare IoC per i miei contesti dati in modo da poter creare Fakes durante la scrittura dei test. Mi chiedo dove risiederanno le interfacce per questi vari contesti di dati?