Сколько DBContext должно быть

Использование Entity В настоящее время у меня есть dbcontext, в котором есть каждая таблица.

Мне интересно, что это делают все, или у вас есть контекст для каждого модуля, например. Для меня dbcontext был соединением для сопоставления моделей с базой данных, и поскольку есть только одна база данных, мне нужен только один.

Прежде чем зайти слишком далеко, я хочу посмотреть, подходит ли это.

Итак, контекст 1 db для каждой базы данных или много?

Ответ 1

Недавно я прошел этот же процесс и нашел несколько замечательных ресурсов по этому вопросу. Вот пара, которая была очень полезна:

Я создавал приложение для рабочего стола, и в итоге я использовал несколько контекстов, чтобы сохранить привязку к жизни, привязанную к модулю, а не к приложению. Это мне очень хорошо показалось, и мне нравится, что мой DbContext не загружается с DbSets и ограничен теми, которые актуальны для текущего модуля.

В приложении ASP.NET MVC это отличается от того, что DbContext будет работать только до тех пор, пока запрос, и в этих случаях я обычно использую один DbContext для упрощения вещей, если база данных не очень большая, С большой базой данных я бы, вероятно, разделил ее на несколько DbContexts, чтобы ограничить накладные расходы и беспорядок, и держать вещи раздельными.

Ответ 2

в настоящее время EF не был разбит на diff dbContexts. Вот отличный разговор об этом

Что мы сделали для этого случая, мы сделали проект diff от нашего веб-сайта MVC только для генерации базы данных, а затем для каждого требования имеем отдельные dbContexts.

Таким образом, наши dbContexts никогда не бывают большими и легко поддерживаются