0
我先使用代码,并有几个具有导航属性的类。更新与相同类型的关系的导航属性?
问题类别:
public class Issue
{
public Issue()
{
Complaints = new List<Complaint>();
SubIssues = new List<Issue>();
}
[Key,ForeignKey("Complaints")]
public int IssueID { get; set; }
public string Name { get; set; }
public bool IsSubCategory { get; set; }
public virtual Issue ParentIssue { get; set; }
public virtual ICollection<Issue> SubIssues { get; set; }
public virtual ICollection<Complaint> Complaints { get; set; }
}
投诉类:
public class Complaint
{
public Complaint()
{
CreateDate = DateTime.Now;
}
public int ComplaintID { get; set; }
public DateTime CreateDate { get; set; }
[MaxLength(2000)]
public string Description { get; set; }
public bool IsClosed { get; set; }
[ForeignKey("IssueID")]
public virtual Issue Issue { get; set; }
public int IssueID { get; set; }
}
的投诉类是工作的罚款。我遇到困难的地方是问题类别,它引用了子表和ParentIssue。这个想法是,每个IsSubCategory == False的Issue记录可以有多个相关的Issue记录作为SubIssues的集合,每个IsSubCategory == true的Issue记录与ParentIssue的Issue记录具有1对1的关系。
因为一些DBA标准我还需要指定的外键字段的命名,即ParentIssueID而非Issue_ParentIssueID(或不管它自动一族)
我宁愿用数据说明这样做,但可能如果需要的话,使用OnModelCreating过程。
我该如何解决问题类以便创建正确的表?