簡體   English   中英

添加項目的多對多關系

[英]many to many relationship adding items

我正在使用本網站建議的以下兩個類: https//www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx

   public class Barca
   {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int BarcaID { get; set; } 
    public virtual ICollection<Imbarco> Imbarco { get; set; }
    public virtual Imbarco ImbarcoBase { get; set; }
    }

   public class Imbarco
   {
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ImbarcoID { get; set; }
    public virtual ICollection<Barca> Barche { get; set; }
    public virtual ICollection<Barca> BaseBarche { get; set; }
    }

我需要創建1到M的關系,為此我使用了這兩個導航屬性:

public virtual Imbarco ImbarcoBase { get; set; }
public virtual ICollection<Barca> BaseBarche { get; set; }

但我還需要一個M到M的關系,為此我用過:

public virtual ICollection<Imbarco> Imbarco { get; set; }
public virtual ICollection<Barca> Barche { get; set; }

當我嘗試在M到M中添加新項目時,不會在數據庫中創建橋接表,如上面報告的鏈接中所述,我嘗試在VisualStudio中生成的edmx文件創建了0..1到M和M到0..1的關系而不是m到M.我做錯了什么?

我會先修復你的模型。 我建議您使用流暢的api配置,但您可以嘗試使用InverseProperty注釋,以便EF建立正確的連接:

   public class Imbarco
   {
       [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
       public int ImbarcoID { get; set; }

       [InverseProperty("Imbarco")]
       public virtual ICollection<Barca> Barche { get; set; }
       [InverseProperty("ImbarcoBase")]
       public virtual ICollection<Barca> BaseBarche { get; set; }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM