我有一个使用 SQL_Latin1_General_CP1_CI_AS 排序规则创建的数据库(不区分大小写)。 我正在创建LINQ表达式,并尝试制作“包含”方法,该方法应以区分大小写的方式比较字符串。
我知道如果使用类似这样的命令,我可以强制进行排序:
CHARINDEX(N'foo' COLLATE SQL_Latin1_General_CP1_CS_AS, 'something Foo') > 0
但是由于我要使用LINQ构建表达式来创建查询,所以我的代码如下:
using System.Linq.Expressions;
private Expression Contains(Type type, string value, Expression propertyExpression)
{
var searchValue = Expression.Constant(value, typeof(string));
var method = propertyExpression.Type.GetMethod("Contains", new[] { type });
var result = Expression.Call(propertyExpression, method, searchValue);
...
}
因此,如果我要对单词'foo'使用此Contains方法,则还会返回带有'Foo'的行(我不想要)。
是否可以扩展此表达式,以便指定区分大小写的比较?