我有以下课程:
1- PurchaseMaster :Has collection >> PurchaseDetail
2- PurchaseDetail :Has Product
3- Product
我希望购买带有详细信息和产品的PurchaseMaster。我尝试使用undere查询但返回错误:
var purchaseMasterModel = _purchaseMasters
.Include("StoreMasters.Details")
.Include("ProductHeader")
.FirstOrDefault(row => row.Code == code);
var purchaseMasterModel = _purchaseMasters
.Include("StoreMasters.Details")
.Include("StoreMasters.Details.ProductHeader")
.FirstOrDefault(row => row.Code == code);
var purchaseMasterModel = _purchaseMasters
.Include("StoreMasters.Details")
.Include("Details.ProductHeader")
.FirstOrDefault(row => row.Code == code);
我收到了这个错误:
指定的包含路径无效。 EntityType'DataLayer.Context.StoreDetail'不声明名为'ProductHeader'的导航属性。 我的课程是这样的:
public class PurchaseMaster:BaseEntity
{
public virtual ICollection<PurchaseDetail> PurchaseDetails { get; set; }
}
public class PurchaseDetail:BaseEntity
{
public PurchaseMaster PurchaseMaster { get; set; }
public Guid PurchaseMasterId { get; set; }
public ProductHeader ProductHeader { get; set; }
public Guid ProductHeaderId { get; set; }
}
public class ProductHeader:BaseEntity
{
public virtual ICollection<PurchaseDetail> PurchaseDetails { get; set; }
}
答案 0 :(得分:2)
您已选择PurchaseMaster
,因此不应指定StoreMaster
。
您还必须使用属性名称。 ProductHeader
有一个属性 PurchaseDetails ,但没有详细信息。
以下查询应该有效:
var purchaseMasterModel = _purchaseMasters
.Include("PurchaseDetails")
.Include("PurchaseDetails.ProductHeader")
.FirstOrDefault(row => row.Code == code);