我有这些课程:
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的各种技术,但是似乎无法获得正确的数据库结构,或者我将数据错误地添加到数据库中。有人知道如何正确映射它吗?或者我可以创建一个更简单的设置?