在Web应用程序的每个主要部分都具有多个XXX : DbContext
类是一种好习惯(考虑到它是一个很大的类,数据库中至少有50个表)?例如:MembershipContext,BlogContext,StoreContext等。或者为所有与数据库访问相关的内容使用一个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个表,我认为拥有多个DbContext是合理的。因此,我建议使用多个DbContext。但是您应该使用Repository和UnitOfWork模式包装它们,以使其独立于其他层的实际实现(这样,您以后可以很容易地改变主意,并且仅使用signle DbContext)。
希望对您有所帮助。