8

对于Web应用程序的每个主要部分(考虑到它的数据库中至少有50个表是一个大的部分),有多个XXX : DbContext类是不是很好?例如:MembershipContext,BlogContext,StoreContext等。或者更方便地为所有与db访问相关的东西提供一个DatabaseContext单个Web应用程序的多个DbContext类。是好是坏?

回答

8

使用多个DbContext类意味着复杂的交叉事务(您可以在网络上找到解决此问题的示例http://pastebin.com/YEDqyH0n),但可能是有道理的。这一切都取决于你想要设计的体系结构和分离。

不管怎么说,您应该查看Repository和UnitOfWork模式,以获得如何使用您的DbContexts的抽象层。看看这里:Multiple DbContexts in N-Tier Application和这里EF and repository pattern - ending up with multiple DbContexts in one controller - any issues (performance, data integrity)?如果你使用ASP.NET MVC。

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

我希望有帮助。

+7

DbContext已经实现了Repository和工作单元模式! –

相关问题