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