2

当我进行复杂查询并尝试过滤掉 varchar 类型列上的数据时,在 sql 代码中转换所需变量的提供程序不在“where”块中,并声明了一个 NVarchar 类型的变量并为其分配了一个值。并阻止“where”添加对该变量的搜索。

--  SqlServer.2008
DECLARE @cashRegisterNumber NVarChar -- String
SET     @cashRegisterNumber = N'0705311'

因为默认 nvarchar 类型的长度为 1,所以它会查找第一个字符。如何克服并使它看起来整条线?

4

1 回答 1

2

试试 Sql.AsSql 方法:

var str = "0705311";

...Where(t => t.Field1 == Sql.AsSql(str));
于 2016-07-04T17:22:36.873 回答