sql server 2008-Linq空字符串与空格



我有一个linq查询

var x = c from context.customers
where c.Name == ''

var x =  c from context.customers
where c.Name == ' '

我在SQL 2008数据库中有一个customername列,带有varchar(50),一个客户为空,另一个有空格,但Linq生成的TSQL是正确的,但两个查询的返回都返回了两个客户,而不是我想要的1条记录,该记录要么为空,要么有空格。根据这个问题,我知道潜在的问题是SQL服务器问题。

SQL Server 2008空字符串与空间

我想修改我的Linq查询。我该怎么做?而不使用linq中的SQL server T-SQL命令。

如果使用实体框架,请使用SqlFunctions.DataLength来区分空字符串和空白。

例如

var x = c from context.customers
where c.Name == '' && SqlFunctions.DataLength(c.Name) == 0

var x = c from context.customers
where c.Name == '' && SqlFunctions.DataLength(c.Name) != 0

SqlFunctions.DataLength转换为TSQL DataLength函数。DATALENGTH将为您提供字符串所需的字节数,包括任何空格。相比之下,LEN函数将在修剪任何尾部空白后为您提供字符数。

相关内容

  • 没有找到相关文章

最新更新