C#LINQ问题区分大小写

And*_*nda 2 linq-to-sql c#-3.0

我有这个:

var sortName = Request.Params["sortName"];
var query = Request.Params["query"];

Func<UsuarioEndereco, bool> whereClause = (uen => uen.GetPropValue<string>(sortName).Contains(query));
Run Code Online (Sandbox Code Playgroud)

"uen.GetPropValue<string>(sortName)"将动态与sortName填写页面键入的用户.

例如,如果用户查找名为"Joe"的人,则该代码段将为:

(uen => uen.namePerson.Contains(Joe))
Run Code Online (Sandbox Code Playgroud)

但是,我遇到LINQ区分大小写的搜索问题.如果我输入"Joe",我会说些什么.另一方面,如果我输入"joe",它什么都没带.

如何使这个"包含(sortName)"与Case-Insensitive一起工作?我已经尝试了一些String.Comparer的东西,但它报告了构建解决方案的错误.

谢谢!!

Jam*_*ran 6

我相信以下内容将生成正确的SQL:

 uen=>(uen.GetPropValue<string>(sortName)).ToLower().Contains(query.ToLower()))
Run Code Online (Sandbox Code Playgroud)