小编Mar*_*007的帖子

首先了解实体框架代码中的ForeignKey属性

有关背景信息,请参阅以下帖子:

实体框架一到零或一个没有导航属性的关系

我一直认为这ForeignKey用于显示类中哪个属性持有确定导航属性的ForeignKey,例如

public class MemberDataSet
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public int? DeferredDataId { get; set; }
    [ForeignKey("DeferredDataId")]
    public virtual DeferredData DeferredData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,我在链接的帖子上发现这是不对的,因为DeferredData的主键被称为Id我实际需要:

public class MemberDataSet
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public int? DeferredDataId { get; set; }
    [ForeignKey("Id")]
    public virtual DeferredData DeferredData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ForeignKey用于指向其他类.

然后我继续改变其他一些参考文献:

public class MemberDataSet
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework foreign-keys code-first shared-primary-key

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