EF6多于两个实体和组合键的多对多映射

时间:2019-02-04 00:30:35

标签: c# .net entity-framework-6 many-to-many seed

我有这些课程:

public class Behandler
{
    [Key]
    [Column(Order = 1)]
    public string CompanyName { get; set; }
    [Key]
    [Column(Order = 2)]
    public string Street { get; set; }
    public virtual ICollection<Profession> Professions { get; set; }
    public virtual ICollection<Treatment> Treatments { get; set; }
    // And other fields
}

public class Profession
{
    [Key]
    public string Name { get; set; }
    public virtual ICollection<Behandler> Behandlers { get; set; }
    // And other fields
}

public class Treatment
{
    [Key]
    [Column(Order = 1)]
    public string Name { get; set; }
    [Key]
    [Column(Order = 2)]
    public Profession Profession { get; set; }
    public virtual ICollection<Behandler> Behandlers { get; set; }
    // And other fields
}

我需要在Behandler / Profession和Behandler / Treatment之间进行多对多映射,但是Behandler具有复合键,Treatment也是如此,而且处理方法的复合键中包含的键之一是主键,这增加了复杂性职业。因此,我需要在Behandler / Treatment和Behandler / Profession之间进行多对多映射,以及在Treatment / Profession之间进行多对一映射。

我尝试创建联接表和类,但是我的种子方法中总是会遇到Primary / Foreignkey异常。我还尝试了使用流畅的api的各种技术,但是似乎无法获得正确的数据库结构,或者我将数据错误地添加到数据库中。有人知道如何正确映射它吗?或者我可以创建一个更简单的设置?

0 个答案:

没有答案