Я прочитал много сообщений, связанных с этой проблемой, но не смог найти ответ. Я пытаюсь загрузить большой объем данных из 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 не поймал исключение. p >
try
{
ImportData();
}
catch (DbEntityValidationException ex)
{
foreach (var item in ex.EntityValidationErrors)
{
//...
}
}
Единственное решение, которое я нашел, - это использовать SQL Server Profiler и определить следующие события для мониторинга:
Теперь я вижу, что электронная почта слишком длинная.