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