设置卡片和套装。这是我在我的模型中使用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; }
}
然后换卡片:
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'的关系。多个添加的实体 可能有相同的主键。
知道为什么吗?
答案 0 :(得分:1)
对我来说,在Set实体中有这个没有意义。它不能自称并且是必需的
// Navigation Properties
[Required]
public virtual List<Set> Sets { get; set; }
如果Set
有Sets
列表,您如何创建第一个Set
?
请注意,根据错误中的内容,它与Card类
无关答案 1 :(得分:0)
如果您只是试图避免空错误使新实例化的Set
没有Sets
,那么处理此问题的正确方法是在构造函数中实例化Sets
:
public class Set
{
public Set()
{
Sets = new List<Set>();
}
...
}