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 子句中使用 REPLACE
和 LOWER
吗?
这样建怎么样?
Where(t=>t.name.toLower() == value)
Dynamic Linq 不理解 T-SQL。你会想这样制作:
.Where(string.Format("(name).ToLower().Replace(\" \", \"\") == \"{0}\" ", value))
T-SQL 中有 ToLower
和 Replace
的模拟,Linq 知道如何从 c# 翻译它们。
但是,如果 name
是一个静态列名,那么@Jonny 就会有所作为。您在这里不需要 Dynamic Linq(除非这只是您正在解决的更大问题的人为示例)。
这是我的代码,
db.myDBContext.my_tables.Where("REPLACE(LOWER(name),\" \",\"\") == \"{0}\"", value);
显示错误
No applicable method 'LOWER' exists in type 'my_table'
我不能在动态 linq 子句中使用 REPLACE
和 LOWER
吗?
这样建怎么样?
Where(t=>t.name.toLower() == value)
Dynamic Linq 不理解 T-SQL。你会想这样制作:
.Where(string.Format("(name).ToLower().Replace(\" \", \"\") == \"{0}\" ", value))
T-SQL 中有 ToLower
和 Replace
的模拟,Linq 知道如何从 c# 翻译它们。
但是,如果 name
是一个静态列名,那么@Jonny 就会有所作为。您在这里不需要 Dynamic Linq(除非这只是您正在解决的更大问题的人为示例)。