多对多关系添加项

时间:2019-04-26 13:44:16

标签: c# entity-framework-6 asp.net-4.5

我正在使用此网站建议的以下两个课程: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的关系,为此,我使用了以下2个导航属性:

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。 我在做什么错了?

1 个答案:

答案 0 :(得分:0)

我将从修复您的模型开始。我建议您使用fluent api进行配置,但是您可以尝试使用InverseProperty annotation,以便EF建立正确的连接:

build_model(... parameters)