在c#中首先使用代码播种外键

时间:2014-04-16 01:00:22

标签: c# ef-code-first foreign-keys ef-migrations

我遇到了关于为我的数据库播种并为外键提供值的问题。

这是UserPains的模型:

public partial class UserPain
    {
        public int Id { get; set; }
        public int ScoredBy { get; set; }
        public DateTime LastUpdated { get; set; }

        public virtual Defect Defects { get; set; }

    }

这是我的缺陷模型:

public partial class Defect
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
}

所以当我接种时:

new UserPain { ScoredBy = 1, LastUpdated = DateTime.Now }

标记为Defects_Id的UserPain表中的值为null。如何将缺陷表中现有缺陷的ID分配给缺陷_Id的值?

1 个答案:

答案 0 :(得分:2)

您可以将Defect属性设置为您从数据库创建或提取的Defect实例。或者,您可以向UserPain对象添加ID字段,并将其设置为:

public partial class UserPain
{
    // ...

    [Column("Defects_Id")]
    public int DefectId { get; set; }

    [ForeignKey("DefectId")]
    public virtual Defect Defect { get; set; }

}

现在您也可以在没有实例的情况下设置DefectId。我在这个过程中为你单独化了属性名称!