我有一个表,主键字段的默认值为newid() - >,每次插入一条记录时都会生成一个唯一的id . 当我尝试从任何SQL管理工具直接在数据库中插入记录时,它可以工作 . 但是当我尝试使用C#linq-sql insert时,它给出了以下错误:
无法将值NULL插入列'',table'';列不允许空值 . 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();
1 回答
@dbugger提供的建议已经足够了 . 但是,如果仍需要在SQL中生成它,请确保指定ID列(主键字段)具有IsDbGenerated属性以及IsPrimaryKey: