在我看来,该ForeignKey属性对我不起作用,但我想我使用它错了;)
使用代码更容易解释:
public class BaseCard
{
public int Id {get ; set; }
public int BaseCardId { get; set; }
public List<Skill> Skills { get; set; }
}
public class Skill
{
public int Id { get; set; }
public int BaseCardId { get; set; }
[ForeignKey("BaseCardId")]
public BaseCard BaseCard { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用种子方法填充这些对象时,我收到此错误:
INSERT语句与FOREIGN KEY约束"FK_dbo.Skills_dbo.BaseCards_BaseCardId"冲突.冲突发生在数据库"数据库",表"dbo.BaseCards",列"Id"中.
在我看来,像ForeignKey在Skill试图以点Id列BaseCards,而不是BaseCardId列,我想不通为什么..
如果我尝试删除"正常" Id属性BaseCard,并将其设置BaseCardId为PK(带属性[Key]),则会出现以下错误: …
c# entity-framework foreign-keys data-annotations ef-code-first