我正在使用此网站建议的以下两个课程: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。 我在做什么错了?
答案 0 :(得分:0)
我将从修复您的模型开始。我建议您使用fluent api进行配置,但是您可以尝试使用InverseProperty annotation,以便EF建立正确的连接:
build_model(... parameters)