![](/img/trans.png)
[英]How do I define an entity class to be shared as a collection across multiple entities using Entity Framework Core?
[英]How do I create linked X entities for a X entity using Entity Framework Core 2.0
我想創建一個Product實體,該實體可以將Products列表作為LinkedProducts,但是我不知道為什么我的代碼不起作用。 我是學生,並且是EF核心映射的新手。
我創建了2個實體類Product.cs和ProductLink.cs,這是我的類
Product.cs
public class Product : Content
{
public virtual string Description { get; set; }
public virtual Guid? ThumbnailImageId { get; set; }
[ForeignKey("ThumbnailImageId")]
public virtual Media ThumbnailImage { get; set; }
public virtual List<ProductLink> ProductLinks { get; set; } = new List<ProductLink>();
}
ProductLink.cs
public class ProductLink : EntityBase
{
[ForeignKey("ProductId")]
public virtual Product Product { get; set; }
public virtual Guid? ProductId { get; set; }
[ForeignKey("LinkedProductId")]
public virtual Product LinkedProduct { get; set; }
public virtual Guid? LinkedProductId { get; set; }
}
錯誤:
無法確定由“列表”類型的導航屬性“產品。產品鏈接”表示的關系。 手動配置關系,或者使用“ [NotMapped]”屬性或通過“ OnModelCreating”中的“ EntityTypeBuilder.Ignore”忽略此屬性。
您通過ProductLink.Product
和ProductLink.LinkedProduct
引用導航屬性具有兩個關系,但是只有一個集合導航屬性Product.ProductLinks
,因此EF不知道如何映射它們。
所需的最小更改是將ProductLinks
映射到兩個相關屬性之一,例如使用InverseProperty
屬性:
[InverseProperty("Product")]
public virtual List<ProductLink> ProductLinks { get; set; } = new List<ProductLink>();
有關更多信息,請參見關系文檔主題。
因此,更多有關您在此處嘗試執行的操作的信息將有所幫助。 從我的角度來看,所有內容都可以像這樣合並到一個Product類中。
public class Product : Content
{
public virtual string NormalizedName { get; set; }
public virtual string ShortDescription { get; set; }
public virtual string Description { get; set; }
public virtual Guid? ThumbnailImageId { get; set; }
[ForeignKey("ThumbnailImageId")]
public virtual Media ThumbnailImage { get; set; }
[ForeignKey("ProductId")]
public virtual Guid? ProductId { get; set; }
[ForeignKey("LinkId")]
public virtual Guid? LinkId { get; set; }
public virtual List<Product> ProductLinks { get; set; } = new List<Product>();
}
您究竟收到什么錯誤?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.