由于某种神秘的原因,所有实体在启动时都会被检索

时间:2018-10-10 22:32:33

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

调试应用程序启动时检测到神秘的EF Core问题:调用了上下文中的每个DbSet属性获取器(根据DbSet属性名称按字母顺序),并且数据库中的每个行/实体都被调用正在实例化!

DbContext配置:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseSqlServer(Startup.Configuration.GetConnectionString("DefaultConnection"));
    optionsBuilder.EnableSensitiveDataLogging();
    base.OnConfiguring(optionsBuilder);
}

服务配置:

    services.AddDbContext<ProjectDbContext>();

我尝试通过添加

来解决此问题
optionsBuilder.UseLazyLoadingProxies();

配置为DbContext,但事实证明,这要求我将每个导航属性都标记为virtual,并且获得了大量的导航属性。 我什至使自己成为WinForms工具,该工具在导航属性中添加了virtual修饰符-但是使用代理会导致项目中出现其他问题

尽管如此,无论我是否使用延迟加载代理,我相信这一定不是Entityframework的工作方式。希望对发现和解决问题有任何帮助。

环境:

  • Asp.net Core 2.1
  • EntityframeworkCore 2.1.4
  • Visual Studio 2017(15.8.6)
  • C#7.3

0 个答案:

没有答案