C# 重复密钥的EF异常消息未更新值
我使用EF db.savechanges()运行批量更新,在我的表中有重复的值是很常见的 为了向用户显示由于表上存在重复键而未更新值,我使用了一个try/catch,通过代码将值与异常值一起存储在datatable上:C# 重复密钥的EF异常消息未更新值,c#,entity-framework,exception,C#,Entity Framework,Exception,我使用EF db.savechanges()运行批量更新,在我的表中有重复的值是很常见的 为了向用户显示由于表上存在重复键而未更新值,我使用了一个try/catch,通过代码将值与异常值一起存储在datatable上: output.Rows.Add(item.Tracking_id,"Not loaded because: " + ex.InnerException.InnerException.Message); 它确实起作用,异常消息正确地存储在我的数据表中 不按预期工作的事情是,异常消
output.Rows.Add(item.Tracking_id,"Not loaded because: " + ex.InnerException.InnerException.Message);
它确实起作用,异常消息正确地存储在我的数据表中
不按预期工作的事情是,异常消息没有随着每次迭代而更新。信息是:
“键“PRIMARY”的重复条目“Current foreach Item”
当前foreach项(tracking_id)需要3到4次迭代才能在异常消息上更改。当我在测试时,当前项确实是重复的,但是消息并不反映当前项
我检查了异常堆栈和其中的所有值,但唯一有消息通知重复项的位置是ex.InnerException.InnerException,除了我没有获取重复项的值之外
这是一种预期的行为还是我做错了什么
谢谢请注意,我将此更改为首先检查数据库中是否存在条目,只是好奇try/catch问题您是否尝试过一些日志记录?在你的迭代中?我担心我不确定你的意思。如果通过日志记录,您的意思是将当前跟踪id和异常的值存储在单个变量上,并逐个查看,那么是的。迭代进行得很顺利。请注意,我将此更改为首先检查数据库中是否存在条目,只是好奇try/catch问题。您是否尝试过一些日志记录?在你的迭代中?我担心我不确定你的意思。如果通过日志记录,您的意思是将当前跟踪id和异常的值存储在单个变量上,并逐个查看,那么是的。迭代进行得很顺利。