我有一个如下所示的数据库:
[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);
我有一个例外:
指定的包含路径无效。 EntityType 'DataAccessLayer.Database.Invoice'未声明 导航属性,名称为“InvoiceDetails”。
我不明白为什么它搜索那里没有模型的'DataAccessLayer.Database.Invoice'。我也不理解“导航属性”,因为我使用的是Poco对象(代码优先)。
任何人都知道如何做这种零对多的关系吗?
答案 0 :(得分:1)
我认为您想要使用ICollection<InvoiceDetail>
。