字符串或二进制数据将被截断。该语句已被终止 - 如何找到确切的插入语句?

问题描述:

我知道很少有类似的问题在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()一起在结束所有插入查询。 我收到了一些实体的异常。 如何从异常情况中发现确切的实体值?

当我检查innerexception,我只能找到堆栈跟踪不是造成这种情况的实体。

我使用.NET 4

+0

查看内部异常 – CodingYoshi

+0

嗯......异常还包括一个带有失败实体条目的列表,如果我没有弄错......(这是一个DbUpdateException,对吗?) – elgonzo

+0

已经检查了内部异常。它显示了堆栈跟踪,但不是导致它的实体。我正在使用.NET 4 –

这怎么我终于找到了它。 将鼠标悬停在'ex' - >展开System.Data.UpdateException - >展开'状态条目' - 在这里您可以看到导致此错误的对象。

你可以做以下

catch (DbEntityValidationException ex) 
      { 

将鼠标悬停在离。询问实体验证错误,dbentityvalidationresult,Entry,Entity:查看您试图进入数据库的值和字段名称。

询问entityvalidationerrors,dbentityvalidationresult,录入,实体--to看表,则需要

+0

感谢您的回应。我会检查是否有效,并让你知道。 –