我应该拥有多少个DBContext?

15

使用Entity Framework时,我目前拥有一个包含所有表的dbcontext。

我想知道这是否是每个人都这样做的,或者例如每个模块都有一个上下文。对我而言,dbcontext是将模型映射到数据库的连接,而且由于只有一个数据库,我只需要一个。

在我深入研究之前,我想确定这是否合适。

因此,每个数据库是1个db context还是多个?


我有同样的想法。 - Morten Frederiksen
2个回答

7

最近我经历了同样的过程,并在这个主题上找到了一些很好的资源。以下是几个非常有用的资源:

我正在构建一个桌面应用程序,最终我使用多个上下文,以便将生命周期绑定到模块而不是应用程序。这对我非常有效,我喜欢我的DbContext没有被DbSets淹没,而且仅限于当前模块相关的内容。

在ASP.NET MVC应用程序中,情况就不同了,因为DbContext只会在请求期间存在,在这种情况下,我通常使用单个DbContext来简化事情,除非数据库非常大。对于大型数据库,我可能会将其分解成多个DbContexts,以限制开销和杂乱,并使事物分隔开来。


0

目前,EF尚未被设计成可以分解为不同的dbContexts。这里有一个很棒的讨论

针对这种情况,我们所做的是创建了一个与我们的MVC网站不同的项目,专门用于数据库生成,并为每个需求单独创建了dbContexts。

这样,我们的dbContexts永远不会太大,易于维护。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接