1


0

System.Data.Linq.ChangeConflictException:行が見つからないか変更されています

私はこれで一日の大半を無駄にし、今朝のことほど問題を理解することに近づいていません。

一連のオブジェクトをループし、削除対象としてマークします。 2番目のものは常に上記の例外を引き起こします。 tb_invoiceにはtb_shipmentへのFKがあります。

いつものように、私はおそらく非常に明白な何かを見逃していますが、私はすでにこのコードから多くを取り除いており、何も残っていないので、私はまだこの例外を受け取っています。 これはローカルSQL 2008インスタンスであり、もちろん、請求書を読んでからSubmitChanges()を呼び出すまでの間に請求書を変更する人はいません。 助けて!

myDataContext db = new myDataContext();

IQueryable 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
}

1 Answer


0


SQL Serverの外部キーの削除アクションを「カスケード」に設定しても同じことが行われました。 以前にこれに出くわしたことを以前に覚えていたらよかったのに。