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#