无法确定关系的主要结束-多个添加的实体可能具有相同的主键
本文关键字:实体 关系 结束 无法确定 添加 | 更新日期: 2023-09-27 18:01:58
集合有卡片和集合。以下是我在模型中使用EF Code First的内容:
public class Set
{
// Primitive Properties
[Required]
[Key]
public virtual int SetId { get; set; }
// Navigation Properties
[Required]
public virtual List<Set> Sets { get; set; }
// Navigation Properties
[ForeignKey("ParentSet")]
public int ParentSetId { get; set; }
public virtual Set ParentSet { get; set; }
}
Then for Cards:
public class Card
{
// Primitive Properties
[Required]
[Key]
public virtual int CardId { get; set; }
// Navigation Properties
[Required]
[ForeignKey("ParentSet")]
public int ParentSetId { get; set; }
public virtual Set ParentSet { get; set; }
}
我正在尝试从包管理器控制台使用'update-database'重建数据库,这是我得到的错误:
无法确定的主端"App.Core。Set_ParentSet"关系。多个添加的实体可以有相同的主键。
知道为什么吗?
对我来说,在Set实体中有这个是没有意义的。它不能引用自己,也不能被要求
// Navigation Properties
[Required]
public virtual List<Set> Sets { get; set; }
如果Set
必须有Sets
的列表,如何创建第一个Set
?
请注意,从错误中所写的内容来看,它与Card类无关
如果您只是想避免null错误,因为新实例化的Set
没有Sets
,那么处理这个问题的正确方法是在构造函数中实例化Sets
:
public class Set
{
public Set()
{
Sets = new List<Set>();
}
...
}