2013-12-10 119 views
0

我想用一個特定的Id急切地加載一個類實例。然後我想要包括與A實例相關的每個B類實例和包含與B實例相關的每個C實例。使用.Include()加載多個實體。()

這不起作用:

var schoolyear = _context.Schoolyears 
       .Include(s => s.SchoolclassCodes) 
       .Include(s => s.TimeTableEntries) 
       .SingleOrDefault(s => s.Id == schoolyearId); 

最後.INCLUDE是在錯誤的水平。它必須與.SchoolclassCodes相關。

這是不可能的stronly類型.INCLUDE()或者我必須使用weaked類型風格:

var schoolyear = _context.Schoolyears 
         .Include("SchoolclassCode.TimeTableEntries") 
         .SingleOrDefault(s => s.Id == schoolyearId); 


class Schoolyear 
{ 
    public int Id { get; set;} 
    public ICollection<SchoolclassCode> {get;set;} 
} 

class SchoolclassCode 
{ 
    public ICollection<TimeTableEntry> {get;set;} 

} 

class TimeTableEntry 
{ 
} 

回答

1

您可以用stongly輸入法做得一樣好。

只是要在Include一個選擇查詢,直至到達層次結構中的最後一個實體應加載:

var schoolyear = _context.Schoolyears 
        .Include(s => s.SchoolclassCodes 
         .Select(t => t.TimeTableEntries)); 
+0

是的,它甚至與我所需要的SingleOrDefault,謝謝合作。似乎我忽略了.Select()在該網站上它只是:http://msdn.microsoft.com/en-us/data/jj574232.aspx – Elisabeth

相關問題