Ошибка в LINQ to SQL с пустыми строками в базе данных - PullRequest
6 голосов
/ 21 октября 2011

Я использую LINQ to SQL уже много лет, но впервые вижу такое поведение.

У меня есть таблица БД с несколькими столбцами (varchar(15)), которая может содержать пустойстроки ('').Я проверяю это, выполняя LEN(Column) и проверяя результат на 0.

Теперь, когда я вызываю это из LINQ2SQL, он возвращает поле объекта со строкой, содержащей один пробел (string.Length == 1).

Есть несколько обходных путей, которые я мог бы применить, например, сделать их NULL на БД или обрезать строку, но я хотел бы знать, сталкивался ли кто-нибудь с этим раньше или если ошибка известна (сообщаетсяна MS Connect).Если нет, я сообщу об этом.

Спасибо.

1 Ответ

8 голосов
/ 21 октября 2011

Проблема связана с функцией LEN:

SELECT LEN(' ')

Возвращает 0 в SQL Server; это всего PITA.

Но

SELECT DATALENGTH(' ')

Возвращает 1

...