我已经阅读了许多与此问题相关的帖子,但找不到答案。我正在尝试将大量数据从 Excel 加载到 SQL Server 中。数千条记录。我得到了这个例外:
字符串或二进制数据将被截断。该语句已终止。
显然有些值超出了数据库中的字段大小。该错误来自 SQL Server AFIK。
我的问题 - 我怎么可能知道是什么记录和什么字段值导致了这个?
EF异常中没有具体细节,除了我提到的那个。
任何帮助表示赞赏。
有些人要求提供代码片段,但实际上很简单,问题不在于代码:
// employees is a List<Employee> collection loaded from Excel
using (var context = new Entities())
{
employees.ForEach(e => context.Employee.AddObject(e));
context.SaveChanges();
}
此外,使用DbEntityValidationException的建议方法(仅在 Entity Framework 5.0 中可用)不起作用,catch块没有捕获异常。
try
{
ImportData();
}
catch (DbEntityValidationException ex)
{
foreach (var item in ex.EntityValidationErrors)
{
//...
}
}
到目前为止,我发现的唯一解决方案是使用 SQL Server Profiler,并定义以下要监视的事件:
现在我可以看到电子邮件太长了。