У меня есть приложение ASP.NET, использующее модель структуры сущностей. В процедуре импорта с приведенным ниже кодом я получаю исключение «Невозможно вставить дубликат ключа» для AccountNum при вызове SaveChanges
, но когда выполнение останавливается для исключения, я могу запросить базу данных для явно дублированного поля, и нет предыдущая запись существует.
using (var ents = new PvmmsEntities())
{
foreach (DataRow row in importedResources.Rows)
{
var empCode = row["EmployeeCode"].ToString();
try
{
var resource = ents.ActivationResources.FirstOrDefault(rs => rs.EmployeeCode == empCode);
if (resource == null)
{
resource = new ActivationResources();
resource.EmployeeCode = empCode;
ents.AddToActivationResources(resource);
}
resource.AccountNum = row["AccountNum"].ToString();
ents.SaveChanges(true);
} catch(Exception ex)
{
}
}
}
UPDATE:
С сотрудником 1546 я ловлю действительное исключение дубликата ключа; у него есть дубликат банковского счета. Затем следующий сотрудник - 1548 (1547 действительно пропал без вести). 1548 имеет уникальный банковский счет, но для 1548 я получаю исключение дубликата ключа в SaveChanges. Профиль показывает, что SaveChanges все еще пытается вставить 1546, который на самом деле все еще имеет дубликат банковского счета.