Linq-SQL 插入忽略主键的 SQL Server 默认值
本文关键字:SQL Server 默认值 插入 Linq-SQL | 更新日期: 2024-11-05 03:00:18
我有一个表,主键字段的默认值为 newid() -->,每次插入记录时都会生成一个唯一的 id。 当我尝试从任何SQL管理工具直接在数据库中插入记录时,它可以工作。 但是当我尝试使用 C# linq-sql 插入时,它会给我以下错误:
不能将值 NULL 插入到列 ''、表 '' 中;列不允许空值。插入失败。该语句已终止。
为什么 linq 忽略字段的默认值,鉴于我不希望在主键中使用正常的顺序 int id,是否有任何其他方法可以做到这一点下面是插入的 C# 代码:
databaseDataContext db = new databaseDataContext();
order c = new order();
c.orderName = "Untitled";
c.orderStatus = "New";
db.orders.InsertOnSubmit(c);
db.SubmitChanges();
@dbugger提供的建议已经足够好了。但是,如果您仍然需要在 SQL 中生成它,请确保指定 ID 列(主键字段)具有 IsDbGenerated 属性以及 IsPrimaryKey:
[Column(IsDbGenerated = true, IsPrimaryKey = true)]