у нас есть приложение .NET 3.5 WinForms, которое использует Linq2Sql для вставки записей в базу данных SQL Server 2008. Он работал хорошо в течение последних нескольких лет, пока вчера мы не заметили, что вызов submitchanges () приводит к множественному добавлению записей. Вместо того, чтобы вставлять каждую новую запись только один раз (как это всегда и должно быть), запрос выполнялся в общей сложности пять раз, поэтому каждая запись вставлялась 5 раз !!!
Это, конечно, огромная проблема, мы не можем иметь дубликаты записей в нашей базе данных, которые появляются случайным образом.
Мы понятия не имеем, почему это произошло, я подозреваю, что некоторые проблемы с сетью. У кого-нибудь есть подсказка, в чем может быть причина, как ее устранить и как от нее избавиться?
edit: вот пример кода:
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