繁体   English   中英

LOWER和REPLACE在动态linq where语句上不起作用

[英]LOWER and REPLACE doesn't work on dynamic linq where statement

这是我的代码,

db.myDBContext.my_tables.Where("REPLACE(LOWER(name),\" \",\"\") == \"{0}\"", value);

它显示错误

No applicable method 'LOWER' exists in type 'my_table'  

我不能在动态linq子句中使用REPLACELOWER吗?

Dynamic Linq不了解T-SQL。 您将需要以这种方式制作:

.Where(string.Format("(name).ToLower().Replace(\" \", \"\") == \"{0}\" ", value))

T-SQL中有一个ToLowerReplace的类似物,Linq知道如何从c#转换它们。 但是,如果name是静态列名,则@Jonny起作用。 您在这里不需要Dynamic Linq(除非这只是您要解决的更大问题的人为例子)。

这样构建它怎么样?

Where(t=>t.name.toLower() == value)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM