我知道之前在 SO 中很少有人问过类似的问题。但我的问题有点不同。 我有一个类似于此的代码块 -
using (DBWebEntities db = new DBWebEntities())
{
if (StatusDict != null && StatusDict.Count > 0)
{
foreach (KeyValuePair<string, job_status> kvp in JobStatusDict)
{ db.AddToEmp_status(kvp.Value); }
db.SaveChanges();
}
}
如您所见,我在最后为所有插入查询同时运行了 db.saveChanges()。 我得到了一些实体的异常(exception)。 我如何从异常中找出它发生在哪个实体值上?
当我检查 innerexception 时,我只能找到堆栈跟踪而不是导致此异常的实体。
我正在使用 .NET 4。
最佳答案
您可以执行以下操作
catch (DbEntityValidationException ex)
{
将鼠标悬停在 ex.询问 entityvalidationerrors、dbentityvalidationresult、Entry、Entity:查看您尝试进入数据库的值和字段名称。
查询 entityvalidationerrors、dbentityvalidationresult、Entry、Entity -- 以查看您需要的表
关于c# - 字符串或二进制数据将被截断。该语句已终止 - 如何找到确切的插入语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838343/