В первом приложении 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.
Спасибо за вашу помощь!