У нас есть приложение .NET 3.5 WinForms, которое использует Linq2Sql для вставки записей в базу данных SQL Server 2008. В течение последних нескольких лет до этого мы отлично работали, и вчера мы заметили, что вызов submitchanges() приводит к множеству вставок записей. Вместо того, чтобы вставлять каждую новую запись только один раз (как это всегда бывает и нужно делать), запрос выполнялся всего пять раз, поэтому каждая запись в итоге была вставлена 5 раз !!!
Это, конечно, огромная проблема, мы не можем иметь дубликаты записей в нашей базе данных, появляющиеся случайным образом.
Мы понятия не имеем, почему это произошло, я подозреваю, что проблема с сетью. Кто-нибудь знает, что может быть причиной, как устранить ее и как избавиться от нее?Один вызов Linq2Sql submitchanges() выполняется несколько раз
редактировать: вот пример кода:
if (selectedOrders > 0)
{
try
{
foreach (Customer cust in selectedOrders.Select(a=>a.Customer))
{
Invoice newInvoice = new Invoice();
newInvoice = cust.CustomerID;
// ... other code here
db.Invoices.InsertOnSubmit(newInvoice);
db.SubmitChanges();
}
}
catch (Exception ex)
{
log.Items.Add("Error: " + ex.Message);
log.SelectedIndex = log.Items.Count - 1;
log.Update();
}
}
Спасибо.
Jan
Опубликовать код. – cadrell0
«Сетевая проблема»? Вы попали за это? – bzlm
Похоже, что кому-то не хватает уникального ограничения на их базу данных. – jason