字符串或二进制数据将被截断。该语句已被终止 - 如何找到确切的插入语句?
问题描述:
我知道很少有类似的问题在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
答
这怎么我终于找到了它。 将鼠标悬停在'ex' - >展开System.Data.UpdateException - >展开'状态条目' - 在这里您可以看到导致此错误的对象。
答
你可以做以下
catch (DbEntityValidationException ex)
{
将鼠标悬停在离。询问实体验证错误,dbentityvalidationresult,Entry,Entity:查看您试图进入数据库的值和字段名称。
询问entityvalidationerrors,dbentityvalidationresult,录入,实体--to看表,则需要
+0
感谢您的回应。我会检查是否有效,并让你知道。 –
查看内部异常 – CodingYoshi
嗯......异常还包括一个带有失败实体条目的列表,如果我没有弄错......(这是一个DbUpdateException,对吗?) – elgonzo
已经检查了内部异常。它显示了堆栈跟踪,但不是导致它的实体。我正在使用.NET 4 –