Вот что я хотел бы знать.
Допущения:
- Это 2020 год, а не 2010
- Одна база данных, содержащая все соответствующие объекты
- Один веб-API
- Использование Entity Framework
Вопрос:
Обычно считается наилучшей практикой разбивать сущности EF на ...
- Отдельный DbContext (и репозиторий) для каждой сущности?
- Один DbContext, чтобы управлять ими всеми?
- Что-то среднее?
Повлияло ли на производительность, техническое обслуживание и / или модульное тестирование так или иначе? Это, фактически говоря, мой первый родео, я не уверен в последствиях своего выбора и был бы признателен за вклад других, кто продвинулся дальше по этому пути.
Я задаю этот вопрос сегодня, потому что у меня есть дюжина справочных таблиц, данные которых редко будут редактироваться. Начинает казаться излишним иметь отдельный DbContext для каждого.
Я мог бы просто выбросить эти объекты в том же контексте, который используется таблицей, к которой они предоставляют поиски.
Или я мог бы сделать еще больше, и вытащить дюжину связанных сущностей под эгидой одного DbContext.
Или я мог бы просто буквально объединить всю базу данных в один DbContext.
И я не могу сказать, есть ли правильный или неправильный ответ, или даже если это имеет значение на практике.
Я нашел несколько связанных вопросов, но они либо задавались долгое время go, либо не были такими же. (В частности, я не спрашиваю о том, какую область применения использовать, , так как этот ответ, я считаю, хороший .)
Я включил ниже некоторые релевантные ссылки, которые нашел до настоящего времени.
когда должен создать, новый-dbcontext
linq-and-datacontext
использование-нескольких-dbcontext-in-one-application
сколько-сколько-dbcontexts-должен-я-иметь
как-много-DbContext-подклассов-должен-я-у-в-отношение-к-моя-модель