我有一个使用实体框架模型的ASP.NET应用程序。在导入例程中,使用下面的代码,我在
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)
{
}
}
}
更新:
对于employee 1546,我捕获一个有效的重复密钥异常;他有一个重复的银行账户。然后,下一个雇员是1548(1547真的不见了)。1548有一个唯一的银行帐户,但是对于1548,我得到了SaveChanges上的重复密钥异常。一个概要文件显示SaveChanges仍在尝试插入1546,实际上它仍然有一个重复的银行帐户。