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