有关背景信息,请参阅以下帖子:
我一直认为这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