SQL插入忽略主键的SQL Server默认值
我有一个表,主键字段有一个默认值newid() - >,每次插入记录时都会生成一个唯一的ID。 当我尝试从任何SQL管理工具直接在数据库中插入记录时,它就可以工作。 但是当我尝试使用C#linq-sql插入它给我下面的错误:
无法将值NULL插入到'','表''; 列不允许有空值。 INSERT失败。 该语句已终止。
为什么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)]
链接地址: http://www.djcxy.com/p/40813.html
上一篇: sql insert is ignoring sql server default value for the primary key
下一篇: c#