Ответ 1
Запустить SQL-профайлер. Последний запрос из вашего приложения должен быть сбойным.
Существует ли разумный способ определить, какое поле вызывает "строковые или двоичные данные", с помощью LINQ.
Я всегда делал это вручную, перешагивая через отладчик, но с помощью пакета "SubmitChanges" я должен изменить свой код, чтобы вставить одну строку, чтобы найти виновника в партии строк.
Мне что-то не хватает или в этот день и в возрасте я действительно должен использовать метод грубой силы, чтобы найти проблему.
Пожалуйста, не дайте мне совета по предотвращению этой ошибки в будущем (если только это не будет чем-то гораздо умнее, чем "подтвердить ваши данные" ). Исходные данные поступают из другой системы, в которой у меня нет полного контроля - плюс я хочу быть ленивым.
PS. Действительно ли SQL Server 2008 говорит мне имя поля. Скажите, пожалуйста! Я обновляюсь!
Запустить SQL-профайлер. Последний запрос из вашего приложения должен быть сбойным.
Кажется, они исправили эту проблему для пакета обновления 1.NET 3.5, как указано в этой ссылке: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=353232
Можете проверить это самостоятельно.
Возможно, было бы полезно переустановить/отредактировать этот тег как linq.net
DJ - где вы получаете эти данные, которые публикуете в качестве предлагаемого решения?
Исключение не содержит этой информации, поэтому ваш пост в значительной степени бесполезен - если вы не можете указать источник.
Предполагая, что вы обрабатываете большую партию записей, и вы не хотите (не можете) проверять данные перед рукой, и вы просто хотите, чтобы ограничения db ломали любые ошибки?
Измените свою программу, чтобы поймать исключение и распечатать текущую информацию о записи в файле журнала или что-то в этом роде.
Record # 9999
Caused "string or binary data would be truncated" error
Field1: "Data" Length: 55
Field2: 9999
etc.