Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重复密钥的EF异常消息未更新值_C#_Entity Framework_Exception - Fatal编程技术网

C# 重复密钥的EF异常消息未更新值

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); 它确实起作用,异常消息正确地存储在我的数据表中 不按预期工作的事情是,异常消

我使用EF db.savechanges()运行批量更新,在我的表中有重复的值是很常见的

为了向用户显示由于表上存在重复键而未更新值,我使用了一个try/catch,通过代码将值与异常值一起存储在datatable上:

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和异常的值存储在单个变量上,并逐个查看,那么是的。迭代进行得很顺利。