System.Data.Linq.ChangeConflictException: строка не найдена или изменена - PullRequest
1 голос
/ 02 февраля 2010

Я потратил лучшую часть дня на это и не ближе к пониманию проблемы, чем то, чем я был сегодня утром.

Я перебираю набор объектов и отмечаю их для удаления. 2-й всегда вызывает вышеуказанное исключение. У 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 
} 

1 Ответ

0 голосов
/ 02 февраля 2010

System.Data.Linq.ChangeConflictException: строка не найдена или изменена

Установка действия «Удалить для внешних ключей в SQL Server на« Каскад »сделала то же самое. Хотелось бы, чтобы я вспомнил ранее, что сталкивался с этим раньше.

...