我非常需要帮助。我花了一整天的时间,甚至没有一个小时可以浪费在一个项目上。我有一个 Linq to SQL 数据层,并且正在使用以下代码对数据库进行简单的插入:
using (var odc = new OrdersDataContext())
{
try
{
var id = GetNextOrderId(odc);
order.ID = id;
odc.tblOrders.InsertOnSubmit(order);
odc.SubmitChanges();
}
catch (Exception ex)
{
Logger.LogException(ex);
}
}
由于其他遗留代码以及这是在 SQL 2000 上运行的数据库,我无法对数据库进行更改,但此代码在某一时刻运行良好,然后就停止了工作。它是说:
无法将值 NULL 插入到列“ID”、表“订单”中;列不允许空值。插入失败。
但正如您从代码中看到的,以及当我逐步浏览代码时我可以清楚地看到的那样,ID 列正在获取一个有效的 ID 号。出于某种原因,即使我正在设置 ID 字段,它仍试图将其插入为空,即使此代码之前工作正常。我已经完全恢复数据库并重建数据层,但无济于事。
我被这件事难住了,而且时间紧迫,以至于我无法自拔。