はここに私のコードです、動的LINQ上では動作しませんREPLACE、LOWERと声明
db.myDBContext.my_tables.Where("REPLACE(LOWER(name),\" \",\"\") == \"{0}\"", value);
それは
No applicable method 'LOWER' exists in type 'my_table'
私は、動的LINQの句でREPLACE
とLOWER
を使用することはできませんエラーを表示?
はここに私のコードです、動的LINQ上では動作しませんREPLACE、LOWERと声明
db.myDBContext.my_tables.Where("REPLACE(LOWER(name),\" \",\"\") == \"{0}\"", value);
それは
No applicable method 'LOWER' exists in type 'my_table'
私は、動的LINQの句でREPLACE
とLOWER
を使用することはできませんエラーを表示?
Dynamic LinqはT-SQLを理解していません。あなたは、このようにそれを作ることになるでしょう:
.Where(string.Format("(name).ToLower().Replace(\" \", \"\") == \"{0}\" ", value))
ありT-SQLでToLower
とReplace
用のアナログであり、LINQのは、C#からそれらを変換する方法を知っています。 しかし、name
が静的な列名の場合、@ Jonnyは何かを実行しています。 Dynamic Linqはここでは必要ありません(これは、あなたが解決している大きな問題の単なる人為的な例でない限り)。
この方法ではどうでしょうか?
Where(t=>t.name.toLower() == value)
これはSQL Server用ですか? – juharr
はい@juharr、SQL Server用です! – zey
'name'は列名を表す変数でなければなりませんか、それとも文字通り" name "という列ですか? – Crowcoder