//SelectUtilitiesCheckbox is bound to a complete list of the Utilitie_companies table
foreach (ListItem x in SelectUtilitiesCheckBox.Items)
{
Select_Utility SU = rows.Where(r => r.Utility_Id == Convert.ToInt32(x.Value)).FirstOrDefault();
bool initialValue = SU != null;
if (x.Selected == true && initialValue == false)
{
// New qualification added so save it
Select_Utility NewSelectUtility = new Select_Utility();
NewSelectUtility.WorkId = tempWorkSiteId;
NewSelectUtility.Utility_Id = System.Convert.ToInt32(x.Value);
context.Select_Utilities.InsertOnSubmit(NewSelectUtility);
}
else if (x.Selected == false && initialValue == true)
{
// Removed old qualification so remove it in the database
context.Select_Utilities.DeleteOnSubmit(SU);
}
}
context.SubmitChanges();
我的问题 - 使用LINQ - 在提交时插入工作正常,但当我尝试使用deleteOnSubmit时我得到了
错误:ChangeConflictEception未被用户代码处理 - 未找到或更改行。
当它到达context.submit但在上下文中使用breakpoit'Su'.Select_Utilities.DeleteOnSubmit(SU);包含对被删除者的正确记录
关于为什么的任何想法?
答案 0 :(得分:3)
感谢......
System.Data.Linq.ChangeConflictException: Row not found or changed
我已经解决了这个问题。
问题在于:我在Db中的一个字段是可空的但在DBML文件中不可为空。更改记录以解决问题。