9

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

4

1 回答 1

9

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

无论如何,您应该查看 Repository 和 UnitOfWork 模式以对如何使用 DbContexts 进行抽象层。看这里:N-Tier Application 中的多个 DbContexts和这里EF 和存储库模式 - 最终在一个控制器中使用多个 DbContexts - 任何问题(性能、数据完整性)?如果您使用 ASP.NET MVC。

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

我希望这会有所帮助。

于 2012-06-17T17:49:26.073 回答