2011-06-09 67 views
0

我搜索了一下,并明白,我可以use projection to partially load an entity,问题变成有部分渴望加载孩子的方式吗? 说我有以下部分渴望加载子实体(加载特定文件)

实体A具有

Id 
Name 
EntityB 

和实体B有

Id 
StuffToBeLoaded1 
StuffToBeLoaded2 
OtherStuffNotToBeLoaded 

如何装入A和B,而且B只有stuffToBeLoaded1和stuffToBeLoaded2? 我想我不能调用.Inlucde(“EntityB”),否则它是完全加载的,是吗?

回答

3

您必须对投影使用自定义查询。如果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 
       };