单个Web应用程序的多个DbContext类。是好是坏?

时间:2012-06-17 16:16:45

标签: entity-framework architecture coding-style repository-pattern

对于Web应用程序的每个主要部分都有多个XXX : DbContext类是一个好习惯(考虑到它是一个在其数据库中至少有50个表的大型)?例如:MembershipContext,BlogContext,StoreContext等。或者为所有与数据库访问相关的东西设置一个DatabaseContext会更方便。

1 个答案:

答案 0 :(得分:8)

使用多个DbContext类意味着使交叉事务复杂化(您可以在Web上找到此问题的解决方案,例如http://pastebin.com/YEDqyH0n),但可能是合理的。这完全取决于您的架构和您想要设计的分离。

无论如何,您应该查看Repository和UnitOfWork模式,以获得如何使用DbContexts的摘要层。如果您使用ASP.NET MVC,请查看此处:Multiple DbContexts in N-Tier Application和此处EF and repository pattern - ending up with multiple DbContexts in one controller - any issues (performance, data integrity)?

对于50个表,我认为拥有多个DbContexts可能是合理的。所以我建议使用多个DbContexts。但是你应该使用Repository和UnitOfWork模式将它们包装起来,使其与其他层中的实际实现无关(这样你以后就可以轻松改变主意,例如只使用符号DbContext)。

我希望有所帮助。