LOWER和REPLACE对动态linq where语句不起作用
本文关键字:where 语句 不起作用 linq 动态 REPLACE LOWER | 更新日期: 2023-09-27 17:55:06
这是我的代码,
db.myDBContext.my_tables.Where("REPLACE(LOWER(name),'" '",'"'") == '"{0}'"", value);
显示错误
No applicable method 'LOWER' exists in type 'my_table'
REPLACE
和LOWER
吗?Dynamic Linq不理解T-SQL。您需要这样制作它:
.Where(string.Format("(name).ToLower().Replace('" '", '"'") == '"{0}'" ", value))
在T-SQL中有一个类似的ToLower
和Replace
, Linq知道如何从c#转换它们。但如果name
是一个静态列名,那么@Jonny就有意义了。在这里你不需要动态Linq(除非这只是一个你正在解决的更大问题的人为例子)。
这样构建如何?
Where(t=>t.name.toLower() == value)