Entity framework EF代码前6个带“1”;“多重”;多对多自参考
我有一个这样的实体:Entity framework EF代码前6个带“1”;“多重”;多对多自参考,entity-framework,ef-code-first,self-referencing-table,Entity Framework,Ef Code First,Self Referencing Table,我有一个这样的实体: public class Course { public int Id { get; set; } public string Name { get; set; } public virtual ICollection<Course> Prerequisites { get; set; } public virtual ICollection<Course> Equivalents { get; set; }
public class Course
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Course> Prerequisites { get; set; }
public virtual ICollection<Course> Equivalents { get; set; }
public Course()
{
Prerequisites = new HashSet<Course>();
Equivalents = new HashSet<Course>();
}
}
公共课
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共虚拟ICollection先决条件{get;set;}
公共虚拟ICollection等价项{get;set;}
公共课程()
{
先决条件=新的HashSet();
等价物=新的HashSet();
}
}
我想为“先决条件”和“等价物”创建不同的表。
如何配置它?这可能会有所帮助
public class Course
{
public int Id { get; set; }
public String Name { get; set; }
[InverseProperty("PrerequisiteFor")]
public virtual ICollection<Course> Prerequisites { get; set; }
[InverseProperty("EquivalentTo")]
public virtual ICollection<Course> Equivalents { get; set; }
[InverseProperty("Equivalents")]
public virtual ICollection<Course> EquivalentTo { get; set; }
[InverseProperty("Prerequisites")]
public virtual ICollection<Course> PrerequisiteFor { get; set; }
public Course()
{
Prerequisites = new HashSet<Course>();
Equivalents = new HashSet<Course>();
PrerequisiteFor = new HashSet<Course>();
EquivalentTo = new HashSet<Course>();
}
}
公共课
{
公共int Id{get;set;}
公共字符串名称{get;set;}
[逆属性(“先决条件”)]
公共虚拟ICollection先决条件{get;set;}
[逆属性(“等价物”)]
公共虚拟ICollection等价项{get;set;}
[逆属性(“等价物”)]
公共虚拟ICollection等价于{get;set;}
[逆属性(“先决条件”)]
{get;set;}的公共虚拟ICollection先决条件
公共课程()
{
先决条件=新的HashSet();
等价物=新的HashSet();
PrerequisiteFor=新HashSet();
equalentto=新的HashSet();
}
}
那你为什么要把它们做成同一类型的课程?如果你想把它们放在不同的表格里,我想你在设计上有问题。谢谢你的回复。你能写下你的建议吗?