EF Core: экстернализация или перемещение объекта в другую базу данных - PullRequest
0 голосов
/ 20 июня 2020

В первом приложении Entity Framework Core 3.1 кода мы хотим централизовать таблицу базы данных. Приложения расположены в нескольких местах и ​​не взаимодействуют друг с другом.

Допустим, у нас есть 100 приложений с их собственной таблицей [Customers], мы хотим объединить их в одну таблицу в централизованной базе данных. (Проблема не в слиянии части данных).

Моим первым подходом было добавить новую ссылку на проект (подключенную к новой централизованной базе данных) к моему решению. Затем переместите все классы клиента в этот новый проект (сервис, репозиторий и объект). Примерно так:

Current Project structure       New Project structure
WebApp                          WebApp
 |_ AppDatabase                  |_ AppDatabase              
    |_ XXXServices                  |   |_ XXXServices         
    |_ XXXRepositories              |   |_ XXXRepository      
    |_ XXXEntities                  |   |_ XXXEntities          
    |_ CustomerService              |_ CentralizedDatabase     *New*    
    |_ CustomerRepository               |_ CustomerService     *Moved*               
    |_ CustomerEntity                   |_ CustomerRepository  *Moved*          
                                        |_ CustomerEntity      *Moved*          

Это не лучший подход, поскольку объект клиента имеет много отношений с другими объектами / сущностями, а новый проект CentralizedDatabasee не может получить доступ к родительским классам, что приводит к таким ошибкам, как: The type or namespace name 'xxx' could not be found.... Или мне что-то не хватает ...

Можно ли сказать Entity Framework, что эта сущность / служба подключена к другой базе данных, и оставить ее в исходном проекте? Возможно, мне удастся изменить базу данных этого объекта в контексте или когда мы вызываем ConfigureServices?

К вашему сведению, проект использует Io C и Unity.

Спасибо за вашу помощь!

...