Есть ли опыт применения нескольких контекстов ef core в одном приложении и наоборот в нескольких?
Если есть то как решаются вопросы миграций, объединения(через наследование?), разделения контекстов?
В общем случае их получается минимум 3: identity, domain 1, domain 2.
> как решаются вопросы миграций,
На этапе разработки Ef-тулинг (ef migrations add/remove etc) позволяет указать контекст, с которым нужно работать. При старте приложения обновляй каждый контекст независимо.
> объединения(через наследование?)
Зачем?
> разделения контекстов?
Это же разные контексты. Они по-определению разделены. Каждый контекст отвечает за свои данные. Данные не должны шариться.
Re[2]: Опыт применения нескольких контекстов ef core
Здравствуйте, RushDevion, Вы писали:
>> как решаются вопросы миграций, RD>На этапе разработки Ef-тулинг (ef migrations add/remove etc) позволяет указать контекст, с которым нужно работать. При старте приложения обновляй каждый контекст независимо.
>> объединения(через наследование?) RD>Зачем?
возьмем более простой случай. наследуемся от IdentityContext и используем в схеме при определении миграции например связку Product -> ApplicationUser.
Аналогично, имеет смысл поразмышлять об использовании IdentityContext в другом контексте.
Если оба дочерних контекста находятся в независимых проектах, то вроде бы все ок, но если нам нужна большая гибкость: возможность работы как в одном приложении, так и в разных
при желании. Будет ли это просто реализовать?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Опыт применения нескольких контекстов ef core
Я бы не стал. Повторюсь, каждый контекст должен отвечать за свои данные.
Попытка "переиспользовать" контекст на уровне данных, т.е. на уровне таблиц в БД (через наследование, агрегацию, etc.) ничем хорошим не кончится.
Т.е. отнаследоваться от identity-контекста и переиспользовать его типы в рамках своей БД — ОК (мы сами управляем всей схемой, своей и той, что из identity). Отнаследоваться от identity в попытке переиспользовать данные таблиц из другой БД (т.е. мы управляем своей частью схемы, а identity-своей) — не ОК.