0

我有一個數據庫,它是這樣的:實體框架4.3預先加載零到多個

[Invoice] 
-PK:ID 
-... 

[InvoiceDetail] 
-PK:ID 
-FK:Invoice_ID 
-... 

我有一個看起來像這樣我的C#對象:

[Invoice] 
public virtual IEnumerable<InvoiceDetail> InvoiceDetails { get; set; } 
... 

[InvoiceDetail] 
... 

當我嘗試使用:

MyDbContext.Invoices.Where(inv => inv.Id == 1).Include("InvoiceDetails").FirstOrDefault(); 
//or 
MyDbContext.Invoices.Include("InvoiceDetails").Single(inv => inv.Id == 1); 

我有一個例外:

指定的包含路徑無效。 「實體類型」 「DataAccessLayer.Database.Invoice」未聲明名爲「InvoiceDetails」的 導航屬性。

我不明白爲什麼它搜索'DataAccessLayer.Database.Invoice'哪裏沒有它的模型。我也不理解「導航屬性」,因爲我使用的是Poco對象(代碼優先)。

任何人都知道我怎麼能做到這一點零對多的關係?

回答

1

我想你想用ICollection<InvoiceDetail>來代替。

+0

+1不錯。我還沒有創建類,我還沒有意識到虛擬方法正在返回一個IEnumerator而不是ICollection。 – 2012-03-20 14:05:32