/ / Qualquer maneira inteligente de corrigir 'seqüência de caracteres ou dados binários seria truncado' aviso com LINQ - .net, sql-server, linq-to-sql

Qualquer maneira inteligente de corrigir 'string ou dados binários seriam truncados' com o LINQ - .net, sql-server, linq-to-sql

Existe uma maneira inteligente de determinar qual campo está causando "seqüência de caracteres ou dados binários seriam truncados" com LINQ.

Eu sempre acabei fazendo isso manualmente, percorrendo um depurador, mas com um lote usando "SubmitChanges" eu tenho que mudar meu código para inserir uma única linha para encontrar o culpado em um lote de linhas.

Estou faltando alguma coisa ou neste dia e idade eu realmente tenho que ainda usar um método de força bruta para encontrar o problema.

Por favor, não me dê conselhos sobre como evitar esse errono futuro (a menos que seja algo muito mais inteligente do que "validar seus dados"). Os dados de origem são provenientes de um sistema diferente, onde eu não tenho controle total de qualquer maneira - mais eu quero ser preguiçoso.

PS. O SQL Server 2008 realmente me diz o nome do campo. Por favor, me diga que sim! Eu vou atualizar!

Respostas:

5 para resposta № 1

Acione o SQL Profiler. A última consulta do seu aplicativo deve ser a que está falhando.


1 para resposta № 2

Parece que eles corrigiram esse problema para o Service Pack 1 do .NET 3.5, conforme observado neste link: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=353232

Pode querer verificar por si mesmo.


0 para resposta № 3

Provavelmente seria útil re-postar / editar isto marcado como linq .net

DJ - onde você está recebendo esses dados que você postou como uma solução proposta?

A exceção não contém esta informação, então sua postagem é praticamente inútil - a menos que você possa especificar a fonte.


-1 para resposta № 4

Assumindo que você está processando um grande lote de registros e você não quer (pode) validar os dados antes da mão e você só quer restrições de db para pegar algum erro?

Altere seu programa para capturar a exceção e imprima os detalhes do registro atual em um arquivo de log ou algo assim.

Record # 9999
Caused "string or binary data would be truncated" error
Field1: "Data" Length: 55
Field2: 9999
etc.