尝试使用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();
通过提及我的模型使用软件产品中的现有数据库,我将进一步提高资格。
答案 0 :(得分:0)
İf模型首次尝试块
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public Int64 PolicyID { get; set; }
答案 1 :(得分:-2)
将ID
定义为int? ID
。使用?
,变量将接受null
。