LINQ to SQL中的错误,数据库上有空字符串

lep*_*pie 6 .net c# t-sql string-length linq-to-sql

我已经使用LINQ to SQL多年了,但这是我第一次看到这种行为.

我有一个DB表,其中包含一些varchar(15)可能包含空字符串('')的列().我通过运行LEN(Column)并检查结果来验证这一点0.

现在,当我从LINQ2SQL调用它时,它返回带有包含单个空格(string.Length == 1)的字符串的对象字段.

我可以应用一些解决方法,例如NULL在数据库上创建它们或修剪字符串,但我想知道是否有人之前遇到过此问题或者是否已知错误(在MS Connect上报告).如果没有,我会报告.

谢谢.

bri*_*ler 8

问题在于LEN功能:

SELECT LEN(' ')
Run Code Online (Sandbox Code Playgroud)

在SQL Server中返回0; 这是一个完整的PITA.

SELECT DATALENGTH(' ')
Run Code Online (Sandbox Code Playgroud)

返回1