c# - 由于某种神秘的原因,所有实体都在启动时被检索
问题描述
在调试应用程序启动时检测到神秘的 EF Core 问题:DbSet
正在调用上下文中的每个属性 getter(按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 核心 2.1
- EntityframeworkCore 2.1.4
- 视觉工作室 2017 (15.8.6)
- C# 7.3
解决方案
推荐阅读
- java - 如何将字符串和 int 绑定在一起。爪哇
- ruby-on-rails - 当我单击主页上的链接时,在 Communities#show 中获取 ruby rails 错误消息 NoMethodError
- flutter - DragTarget 小部件没有响应
- node.js - Typescript登录功能打字问题
- python - python utf-8 编码声明
- python - 如何在此命令中打印随机数?
- javascript - Javascript - 只需要从 SVG 路径的笔划中获取 x 和 y 坐标吗?
- python - 为什么 Django-Admin Panel 在真正的 vps 中没有显示 css 和 javascript?
- asp.net - 在数据库上下文中找不到 Fluent API 模型构建器映射生成的代码
- python - 如何在 Python 中使用 json.loads 获取文本