2011-06-09 79 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 
       };