Опыт применения нескольких контекстов ef core
От: vaa  
Дата: 17.10.22 01:37
Оценка:
Есть ли опыт применения нескольких контекстов ef core в одном приложении и наоборот в нескольких?
Если есть то как решаются вопросы миграций, объединения(через наследование?), разделения контекстов?
В общем случае их получается минимум 3: identity, domain 1, domain 2.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Опыт применения нескольких контекстов ef core
От: RushDevion Россия  
Дата: 17.10.22 05:25
Оценка:
> как решаются вопросы миграций,
На этапе разработки Ef-тулинг (ef migrations add/remove etc) позволяет указать контекст, с которым нужно работать. При старте приложения обновляй каждый контекст независимо.

> объединения(через наследование?)

Зачем?

> разделения контекстов?

Это же разные контексты. Они по-определению разделены. Каждый контекст отвечает за свои данные. Данные не должны шариться.
Re[2]: Опыт применения нескольких контекстов ef core
От: vaa  
Дата: 17.10.22 06:17
Оценка:
Здравствуйте, RushDevion, Вы писали:

>> как решаются вопросы миграций,

RD>На этапе разработки Ef-тулинг (ef migrations add/remove etc) позволяет указать контекст, с которым нужно работать. При старте приложения обновляй каждый контекст независимо.

>> объединения(через наследование?)

RD>Зачем?
возьмем более простой случай. наследуемся от IdentityContext и используем в схеме при определении миграции например связку Product -> ApplicationUser.
Аналогично, имеет смысл поразмышлять об использовании IdentityContext в другом контексте.
Если оба дочерних контекста находятся в независимых проектах, то вроде бы все ок, но если нам нужна большая гибкость: возможность работы как в одном приложении, так и в разных
при желании. Будет ли это просто реализовать?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Опыт применения нескольких контекстов ef core
От: RushDevion Россия  
Дата: 17.10.22 07:41
Оценка: 6 (1)
vaa>при желании. Будет ли это просто реализовать?

Я бы не стал. Повторюсь, каждый контекст должен отвечать за свои данные.
Попытка "переиспользовать" контекст на уровне данных, т.е. на уровне таблиц в БД (через наследование, агрегацию, etc.) ничем хорошим не кончится.
Т.е. отнаследоваться от identity-контекста и переиспользовать его типы в рамках своей БД — ОК (мы сами управляем всей схемой, своей и той, что из identity). Отнаследоваться от identity в попытке переиспользовать данные таблиц из другой БД (т.е. мы управляем своей частью схемы, а identity-своей) — не ОК.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.