小编Rob*_*Rob的帖子

实体框架代码第一外键问题

在我看来,该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"中.

在我看来,像ForeignKeySkill试图以点IdBaseCards,而不是BaseCardId列,我想不通为什么..

如果我尝试删除"正常" Id属性BaseCard,并将其设置BaseCardId为PK(带属性[Key]),则会出现以下错误: …

c# entity-framework foreign-keys data-annotations ef-code-first

5
推荐指数
1
解决办法
1万
查看次数