我正在尝试更新我的表Bareme
,但我得到了一个关于我的唯一键(Categorie , Section)
的例外,但是如果对象确实存在,我在这里只更新我的工资,并且我已经验证了通过“DEBUG”,没有任何插入的对象重复
内部例外说:
违反UNIQUE KEY约束'IX_Bareme'。无法在对象'dbo.Bareme'中插入重复键。\ r \ n语句已经存在 终止。
代码:
for (int i = 1; i <= sl_cat.Value; i++)
for (int j = 1; j <= sl_sec.Value; j++)
{
Bareme brm = db.Entities.Baremes.Select(X => X).Where(X => X.Section == j && X.Categorie == i).FirstOrDefault();
if (brm != null)
db.Entities.Baremes.DeleteObject(brm);
brm = new Bareme();
brm.Categorie = i;
brm.Section = j;
brm.Salaire = dt.Rows[j - 1][i.ToString()].ToString().ToDecimal();
db.Entities.Baremes.AddObject(brm);
}
try
{
db.Entities.SaveChanges();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
答案 0 :(得分:2)
请使用SaveChanges Method
SaveOptions
DetectChangesBeforeSave
示例
db.Entities.SaveChanges(SaveOptions.DetectChangesBeforeSave);