如何使用实体框架显式加载长导航属性链?

简单代码

我有这个代码来显式加载实体:

dbContext.StorageRequests.Add(storageRequest);
dbContext.SaveChanges();
//Here I want to explict loading some navigation properties
dbContext.Entry(storageRequest).Reference(c => c.Manager).Load();
dbContext.Entry(storageRequest).Reference(c => c.Facility).Load();
dbContext.Entry(storageRequest).Collection(x=> x.PhysicalObjects).Query().Include(x => x.Classification).Load();

我的问题是两部分:

第一个我怎样才能一起加载(我想调用一次 Load() )?

第二部分 上面的代码是否为每个 Load() 调用发送查询,然后依次访问数据库以加载相关数据?

凯厄斯·贾德

我对EF核心有类似的问题。打开调试输出窗口的 SQL 日志记录帮助回答了我关于它在做什么以及为什么这样做的很多问题。就你的问题而言:

1) 你不能,尽管你可以用一系列dbContext.Collection.Include(otherCollection).ThenInclude(stuffRelatedToOtherCollection)类型链来急切地加载它

2) 是的,即使在一个 c# 语句中急切加载也会导致多个查询。我认为这是因为除了最简单的多 SQL 之外,其他任何方式都无法解决复杂的人工智能问题,因为当多个表在一个矩形数据集中连接在一起时,框架很难处理笛卡尔积。(一所学校有学生和老师,老师:学生是多:多的关系,按班级分解。如果你写一个查询加入学校,班级,学生和老师,你会得到到处都是重复的数据,尽管在概念上可以通过它寻找唯一的学校,班主任和学生的主键值,您可能会下载数以万计的重复行,但必须再次将它们全部唯一。EF倾向于选择学校,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用实体框架显式加载特定实体的特定相关实体?

来自分类Dev

实体框架-长链相关对象的高效渴望加载?

来自分类Dev

实体框架核心:如何确保加载导航属性?

来自分类Dev

实体框架6.1:导航属性未加载

来自分类Dev

实体框架6.1:导航属性未加载

来自分类Dev

实体框架导航属性未加载

来自分类Dev

如何结合使用“ AsNoTracking”方法在EF Core中加载实体和显式加载相关实体

来自分类Dev

实体框架6和显式加载对象图

来自分类Dev

实体框架显式迁移

来自分类Dev

使用实体框架的IdentityRole导航属性异常

来自分类Dev

使用用户定义的类型时,实体框架急于加载导航属性会导致错误

来自分类Dev

通过实体框架保存显式实体

来自分类Dev

实体框架一对一导航属性未加载

来自分类Dev

实体框架中具有导航属性的延迟加载的逻辑

来自分类Dev

实体框架加载导航属性而不要求它们

来自分类Dev

实体框架 - 导航属性未急切/延迟加载?

来自分类Dev

实体框架7中的显式事务

来自分类Dev

然后包含在实体框架核心中以进行显式加载吗?

来自分类Dev

显式加载计算属性

来自分类Dev

实体框架:如何从单个导航属性中选择特定字段?

来自分类Dev

linq查询实体框架如何联接表?导航属性?

来自分类Dev

如何在实体框架中保存/更新导航属性?

来自分类Dev

使用实体框架的导航属性更新数据库

来自分类Dev

实体框架5:实体是延迟加载的,但是在观察Local集合时导航属性为null

来自分类Dev

实体框架5:实体是延迟加载的,但是在观察Local集合时导航属性为null

来自分类Dev

当不访问导航属性时,实体框架会延迟加载相关实体

来自分类Dev

实体框架5不清除导航属性

来自分类Dev

无法在实体框架中获取导航属性

来自分类Dev

实体框架对导航属性感到困惑

Related 相关文章

  1. 1

    如何使用实体框架显式加载特定实体的特定相关实体?

  2. 2

    实体框架-长链相关对象的高效渴望加载?

  3. 3

    实体框架核心:如何确保加载导航属性?

  4. 4

    实体框架6.1:导航属性未加载

  5. 5

    实体框架6.1:导航属性未加载

  6. 6

    实体框架导航属性未加载

  7. 7

    如何结合使用“ AsNoTracking”方法在EF Core中加载实体和显式加载相关实体

  8. 8

    实体框架6和显式加载对象图

  9. 9

    实体框架显式迁移

  10. 10

    使用实体框架的IdentityRole导航属性异常

  11. 11

    使用用户定义的类型时,实体框架急于加载导航属性会导致错误

  12. 12

    通过实体框架保存显式实体

  13. 13

    实体框架一对一导航属性未加载

  14. 14

    实体框架中具有导航属性的延迟加载的逻辑

  15. 15

    实体框架加载导航属性而不要求它们

  16. 16

    实体框架 - 导航属性未急切/延迟加载?

  17. 17

    实体框架7中的显式事务

  18. 18

    然后包含在实体框架核心中以进行显式加载吗?

  19. 19

    显式加载计算属性

  20. 20

    实体框架:如何从单个导航属性中选择特定字段?

  21. 21

    linq查询实体框架如何联接表?导航属性?

  22. 22

    如何在实体框架中保存/更新导航属性?

  23. 23

    使用实体框架的导航属性更新数据库

  24. 24

    实体框架5:实体是延迟加载的,但是在观察Local集合时导航属性为null

  25. 25

    实体框架5:实体是延迟加载的,但是在观察Local集合时导航属性为null

  26. 26

    当不访问导航属性时,实体框架会延迟加载相关实体

  27. 27

    实体框架5不清除导航属性

  28. 28

    无法在实体框架中获取导航属性

  29. 29

    实体框架对导航属性感到困惑

热门标签

归档