我使用EF db.savechanges()运行批量更新,我的表上有重复的值很常见。
为了向用户显示由于表上的重复键而未更新该值,我有一个try / catch,它通过代码将值存储在数据表中以及异常值:
output.Rows.Add(item.Tracking_id,"Not loaded because: " + ex.InnerException.InnerException.Message);
它确实有效,异常消息正确存储在我的数据表中。
不能正常工作的事情是每次迭代都不会更新异常消息。消息是:
"重复输入'当前foreach项目'关键' PRIMARY'"
当前foreach项(tracking_id)需要3到4次迭代才能更改异常消息。在我测试时,当前项目确实是重复的,但是消息并不反映当前项目。
我检查了异常堆栈及其中的所有值,但唯一带有消息通知重复项的地方是ex.InnerException.InnerException,除此之外我没有得到重复项的值。
这是预期的行为还是我做错了什么?
由于