我应该有多少DBContext

时间:2013-04-27 03:38:25

标签: asp.net entity-framework

使用实体我目前拥有包含每个表的dbcontext。

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

在我走得太远之前,我想看看是否合适。

每个数据库还有多个数据库或多个数据库?

2 个答案:

答案 0 :(得分:5)

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

我正在构建一个桌面应用程序,最后我使用了多个上下文,这样我就可以将生命周期与模块而不是应用程序联系起来。这对我来说非常好,我喜欢我的DbContext没有被DbSets所淹没,并且仅限于与当前模块相关的那些。

在ASP.NET MVC应用程序中,它是不同的,因为DbContext只会与请求一样长,并且在这些情况下,我通常使用单个DbContext来简化事情,除非数据库非常大。有了一个大型数据库,我可能会将它分成多个DbContexts,只是为了限制开销和杂乱,并保持分隔。

答案 1 :(得分:0)

目前还没有将EF细分为diff dbContexts。 Here a great talk about it

我们为这个案例做了什么,我们已经从MVC网站创建了一个项目差异,只是为了生成数据库,然后为每个需求都有单独的dbContexts。

这样我们的dbContexts永远不会很大并且易于维护