使用Contains方法创建区分大小写的LINQ表达式(不区分大小写的排序规则数据库)

时间:2019-11-27 08:36:48

标签: linq expression contains case-sensitive

我有一个使用 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'的行(我不想要)。

是否可以扩展此表达式,以便指定区分大小写的比较?

0 个答案:

没有答案