首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EF 4.1 Code First -单上下文还是多上下文?

EF 4.1 Code First -单上下文还是多上下文?
EN

Stack Overflow用户
提问于 2011-04-07 22:52:22
回答 2查看 1.6K关注 0票数 6

有没有人能就拥有单一上下文或多上下文的最佳实践提供任何建议?

例如,我是否应该有一个上下文,如下所示:

代码语言:javascript
运行
复制
   public class MyContext
      : DbContext
  {
      public DbSet<Company> Companies { get; set; }

      public DbSet<Country> Countries { get; set; } 

      protected override void OnModelCreating(DbModelBuilder modelBuilder)
      {
          modelBuilder.Configurations.Add(new CountryConfiguration());
          modelBuilder.Configurations.Add(new CompanyConfiguration());
          base.OnModelCreating(modelBuilder);
      }
  }

或者,我为公司和国家创建单独的上下文会更好吗?所以ConpanyContext和CountryContext都会公开一个DbSet属性。

这可能只是个人选择,但我们的数据库将由100个实体组成。因此,我想从一开始就把这件事做好。

非常感谢,

保罗。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-08 09:26:57

一个简单的经验法则:一个模式/域,一个上下文。

票数 6
EN

Stack Overflow用户

发布于 2011-04-07 22:59:47

如果可能的话,试着把它们拆分成有意义的线。

一个上下文中的100个实体可能看起来很糟糕,但考虑一下您的替代方案,100个不同的上下文?

然后你就得做一些像这样的事情

代码语言:javascript
运行
复制
using(CompanyContext cc = new CompanyContext)
{
}

using (CountryContext cc = new CountryContext)
{
}

如果你需要查询多个表,你会有嵌套的上下文,结果会很糟糕。你会开始有像这样的事情

代码语言:javascript
运行
复制
using(CompanyContext comp = new CompanyContext)
    {
        using (CountryContext country = new CountryContext)
       {
       }
    }

我无法想象这样会提高性能,但我确信维护会是一件痛苦的事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5583066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档