c# - EF : Cannot insert value NULL into column 'ID'

标签 c# sql-server entity-framework

尝试使用 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/

相关文章:

c# - 引用中断控制台应用程序在其他机器上运行

c# - 在C#中将文件转换为二进制文件

sql-server - SQL71501 SSDT 未解析的引用 - 比较架构

c# - 在 SQL Server 中批量插入特定列

c# - 是否可以为每个实体使用单独的 ssdl、csdl 和 msl 文件?

c# - 如何使用 MVVM 模式在 WPF 中创建动态表单?

c# - 如何在 visual studio 中访问 SQL 数据库? ( Razor cshtml,C#)

c# - 不了解 DbContext——每个应用程序或每个模型

sql - 为什么要在数据库中创建 View ?

entity-framework - 内存数据库中的 Entity Framework (代码优先)用于单元测试