【问题标题】:EF4 CTP5: DbContext inheritanceEF4 CTP5:DbContext 继承
【发布时间】:2011-07-15 03:14:00
【问题描述】:

我有一个分层的DbContext 结构,我希望有一个专门的DbContext 和它自己的DbSets 来继承BaseDbContextDbSets

使用 ((IObjectContextAdapter)this).ObjectContext 访问底层ObjectContext 时,接收ObjectContext 需要很长时间(几分钟)。

CT5 中的DbContext 是否存在问题,从派生的DbContext 获取ObjectContext 在性能上是不可能的?

结构为:DbContext(EF4) -> myBaseDbContext -> mySpecializedDbContext

有没有人知道在这种情况下发生了什么? 它只是带有 TPC 和一点继承的 POCO (CF)。

【问题讨论】:

  • 您的 DbContext 层次结构有多大?您的层次结构中有多少个 DbSet?
  • DbSet 的数量约为 20 加上 8 个派生 DbSet。一点也不大。
  • 还没看到这个问题。为什么需要ObjectContext
  • 感谢 Ladislav 的回答 好吧,我必须使用 ObjectContext,因为我想调整处理 ProxyCreation 和 LazyLoading 的行为。除此之外,我还有一些需要“基础” oc 的方法。例如“dbctx.UnderlyingContext.DeleteObject(实体);”每次我以任何方式访问 oc 时都会出现问题...
  • 您是否在 ProxyCreation 和 LazyLoading 中做任何繁重的工作?您可以删除其中一个,看看它是否会影响加载时间。

标签: entity-framework entity-framework-ctp5 ef-code-first


【解决方案1】:

我没有遇到以下性能问题,而且您没有那么多 DbSet:

public class MyContext: DbContext
    {       
       //your DbSets<> and other

       public ObjectContext ObjectContext()
       {
          return (this as IObjectContextAdapter).ObjectContext;
       }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多