尝试使用 Entity Framework 向我的数据库中插入一行。我在插入时分配了所有值,但 ID 除外,它是主键,我希望它由 SQL Server 数据库自动递增。
我的表定义/类:
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()
方法时,出现错误
Cannot insert the value NULL into column '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();
我会进一步说明我的模型使用了软件产品中的现有数据库。
最佳答案
İf 模型第一个 try block
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public Int64 PolicyID { get; set; }
关于c# - EF : Cannot insert value NULL into column 'ID' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539541/