EF:无法将值NULL插入列'ID'

时间:2014-12-18 05:01:20

标签: c# sql-server entity-framework

尝试使用Entity Framework将行插入我的数据库。我在插入时分配所有值,除了ID,这是主键,我希望它由SQL Server DB自动递增。

我的表定义/类:

public partial class T_SurfacePick
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    public int? BoreholeID { get; set; }
    public int? AuthoredNameID { get; set; }
    public int? LoadFormat { get; set; }
    public double? PickDepth { get; set; }
    public int? OwningAuthorID { get; set; }
    public int? QualityID { get; set; }
    public double? CustomData { get; set; }
}

当我调用SaveChanges()方法时,出现错误

  

无法将值NULL插入列'ID'

如何让此列自动增加?我不想担心跟踪ID并自己分配。

我正在尝试使用代码优先方法。以下是我的插入/更新决策树的一部分示例:

if (MenefeePick == null) // New top
{
   var Pick = new T_SurfacePick { BoreholeID = Wellbore.ID, AuthoredNameID = MenefeeAN.ID, LoadFormat = 1, PickDepth = Menefee, OwningAuthorID = ProgAuthor.ID, QualityID = -1, CustomData = null };
   db.T_SurfacePick.Add(Pick);
}
else // Update top
{
    MenefeePick.PickDepth = Menefee;
}
db.SaveChanges();

通过提及我的模型使用软件产品中的现有数据库,我将进一步提高资格。

2 个答案:

答案 0 :(得分:0)

İf模型首次尝试块

[Key]
 [DatabaseGenerated(DatabaseGeneratedOption.None)]
 public Int64 PolicyID { get; set; }

答案 1 :(得分:-2)

ID定义为int? ID。使用?,变量将接受null