2010-02-02 52 views
1

我浪费了一天的更好的一部分,我没有比今天上午更接近理解这个问题。System.Data.Linq.ChangeConflictException:行未找到或更改

我正在循环一组对象并标记为删除对象。第二个总是导致上述例外。 tb_invoice有一个FK到tb_shipment。

与往常一样,我可能错过了一些非常明显的东西,但我已经从这段代码中剥离了很多东西,所剩无几,而且我仍然得到这个异常。这是一个本地SQL 2008实例,当然没有任何内容,没有人在读取它们和调用SubmitChanges()之间更改发票。帮帮我!

myDataContext db = new myDataContext(); 

IQueryable<invoiceDetail> pendingInvoices 
    = db.GetInvoiceDetailPending(); 

foreach (invoiceDetail id in pendingInvoices) { 
    tb_shipment s = db.GetShipmentById((Guid)id.shipment_id); 

    db.tb_invoices.DeleteOnSubmit(
      db.GetInvoiceById(s.tb_invoices.FirstOrDefault().id));  } 

    SubmitChanges(); // fails for the 2nd invoice 
} 
+0

可能重复[System.Data.Linq.ChangeConflictException:行未找到或更改](http://stackoverflow.com/questions/805968/system-data-linq-changeconflictexception-row-not-found-or-改变) – 2014-02-03 10:07:34

回答