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