【问题标题】:Cant Disable Lazy Loading and Proxy Creation on DbContext EFCore无法在 DbContext EF Core 上禁用延迟加载和代理创建
【发布时间】:2016-06-28 16:45:00
【问题描述】:

有没有办法在 EntityFramework.Core 上禁用延迟加载

在我之前的代码中,我做了以下事情:

  public DataContext(string nameOrConnectionString) : base(nameOrConnectionString)
    {

        Configuration.LazyLoadingEnabled = false;
        Configuration.ProxyCreationEnabled = false;
    }

但现在使用新的 ef 7 我找不到任何选择这样做

public DataContext(DbContextOptions<DataContext> options) : base(options)
    {
        //should have been in the options
    }

【问题讨论】:

  • 根据一些研究,似乎 EF 7 没有延迟加载
  • 是的,这让我很沮丧

标签: c# asp.net entity-framework asp.net-core-mvc entity-framework-core


【解决方案1】:

自 2019 年起支持延迟加载,但默认情况下未启用,因此您无需执行任何操作。

【讨论】:

【解决方案2】:

根据“加载相关数据”中的current documentation

EF Core 尚不支持延迟加载。您可以查看lazy loading item on our backlog 以跟踪此功能。

所以,你的答案是:什么都不做。

【讨论】:

  • 我还发现没有 DbSet.Find() 方法......对他们的发布感到非常难过
  • @EduCielo 您始终可以编写自己的 Find(...) 方法作为扩展方法。
  • 现在有很好的 ole Find 方法
【解决方案3】:

如果您的问题被禁用 LazyLoading 尝试: this.ChangeTracker.LazyLoadingEnabled = false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多