部分渴望加载子实体(加载特定的文件)

本文关键字:加载 文件 实体 渴望 | 更新日期: 2023-09-27 17:58:56

我搜索了一下,知道我可以使用投影来部分加载实体,问题变成了有没有方法可以部分急切地加载子对象?假设我有以下

实体A具有

Id
Name
EntityB

实体B具有

Id
StuffToBeLoaded1
StuffToBeLoaded2
OtherStuffNotToBeLoaded

如何用B加载A,而B只有stuffToBeLoaded1和stuffToBeLoaded2?我想我不能打电话了。Inlucde("EntityB"),否则它已完全加载,是吗?

部分渴望加载子实体(加载特定的文件)

您必须对投影使用自定义查询。如果EntityB属性表示集合,则可以使用以下内容:

var query = from a in context.EntitiesA
            select new 
               {
                  a.Id,
                  a.Name,
                  Bs = a.EntityB.Select(b => new { 
                       b.StuffToBeLoaded1, 
                       b.StuffToBeLoaded2 
                  })
               };

如果EntityB不是集合导航属性,您可以简单地使用:

var query = from a in context.EntitiesA
            select new 
               {
                  a.Id,
                  a.Name,
                  a.EntityB.StuffToBeLoaded1, 
                  a.EntityB.StuffToBeLoaded2 
               };