我必须添加过程CV文件,然后使用EF将数据库中的多个对象添加到数据中
using (var db = new dbEntities())
{
//Process CSV file
foreach (AIRQ aqs in listairq)
try
{
AIRQ aqs1 = new AIRQ();
aqs1.FeatureID = aqs.FeatureID.Trim();
aqs1.MeasurementDateTime = aqs.MeasurementDateTime;
aqs1.ParameterID = aqs.ParameterID.Trim();
aqs1.ParameterValue = aqs.ParameterValue;
aqs1.Remarks = aqs.Remarks;
db.AIRQTS.Add(aqs1);
db.SaveChanges();
}
catch (Exception ex)
{
}
}
但是我发现虽然对象 aqs1 具有不同的值,但是在调用 db.SaveChanges(); 时却抛出错误主键冲突。我看到sql配置文件的值与对象不同
答案 0 :(得分:0)
故障排除后,我发现数据库中是否存在一条引发错误的记录,该记录仍保留在收集列表中。因此,当循环再次运行时,然后在调用保存更改时,它将尝试再次插入先前的记录。
所以在我写的catch块中
db.AIRQUALITYTS.Remove(aqs);
db.SaveChanges();