Несколько классов DbContext для одного веб-приложения. Хорошо или плохо?

Это хорошая практика иметь несколькоXXX : DbContext классы для каждого основного раздела веб-приложения (учитывая, что оно является большим, по крайней мере, с 50 таблицами в его базе данных)? Например: MembershipContext, BlogContext, StoreContext и т. Д. Или удобнее иметь одинDatabaseContext для всего, что связано с доступом к БД.

Ответы на вопрос(1)

Решение Вопроса

рекрестных транзакций (решение этой проблемы можно найти в Интернете, например,http://pastebin.com/YEDqyH0n) но может быть оправдано. Все зависит от вашей архитектуры и разделения, которое вы хотите разработать.

В любом случае, вы должны взглянуть на шаблоны Repository и UnitOfWork, чтобы иметь уровень абстракции того, как использовать ваши DbContexts. Смотри сюда:Несколько DbContexts в N-уровневом приложении и здесьШаблон EF и репозитория - заканчивающийся несколькими DbContexts в одном контроллере - какие-либо проблемы (производительность, целостность данных)? если вы используете ASP.NET MVC.

Для 50 таблиц я думаю, что может быть оправдано иметь несколько DbContexts. Поэтому я бы рекомендовал использовать несколько DbContexts. Но вы должны обернуть их, используя шаблоны Repository и UnitOfWork, чтобы быть независимыми от фактической реализации в других слоях (например, вы можете легко передумать позже и использовать, например, только signb DbContext).

Надеюсь, это поможет.

 Grief Coder02 мая 2013 г., 05:39
DbContext уже реализует шаблоны репозитория и единицы работы!

Ваш ответ на вопрос