当有2个导航时,我遇到了2个实体之间连接的问题。
具体来说,我有以下几个类:
public class TableA
{
public TableA()
{
ListBs = new List<TableB>();
}
[Key]
public int Id { get; set; }
public TableB MainB { get; set; }
public virtual ICollection<TableB> ListBs { get; set; }
}
public class TableB
{
[Key]
public int Id { get; set; }
public virtual TableA refA { get; set; }
[Required]
public string Text { get; set; }
}
此特定类的方案反映了以下内容: TableA有一个TableB对象列表 并且还有一个主要的TableB对象(当然也在列表中)。 另外,TableB对象可能无法实际引用TableA
提取工作。 但是当我尝试插入新项目时,我得到以下异常:无法确定相关操作的有效排序。由于外键约束,模型要求或存储生成的值,可能存在依赖关系。
知道我哪里出错了吗?
答案 0 :(得分:0)
使用此代码:
public class TableA
{
public TableA()
{
ListBs = new List<TableB>();
}
[Key]
public int Id { get; set; }
public int TableB_Id { get; set; }
[InverseProperty("TableA_Mains")]
[ForeignKey("TableB_Id")]
public TableB MainB { get; set; }
[InverseProperty("refA")]
public virtual ICollection<TableB> ListBs { get; set; }
}
public class TableB
{
[Key]
public int Id { get; set; }
public int TableA_Id { get; set; }
[Foreignkey("TableA_Id")]
[InverseProperty("ListBs")]
public virtual TableA refA { get; set; }
[Required]
public string Text { get; set; }
[InverseProperty("MainB")]
public virtual ICollection<TableA> TableA_Mains { get; set; }
}