這裏是我的代碼,LOWER和REPLACE動態LINQ不起作用where語句
db.myDBContext.my_tables.Where("REPLACE(LOWER(name),\" \",\"\") == \"{0}\"", value);
它顯示錯誤的動態LINQ條款
No applicable method 'LOWER' exists in type 'my_table'
我不能使用REPLACE
和LOWER
?
這裏是我的代碼,LOWER和REPLACE動態LINQ不起作用where語句
db.myDBContext.my_tables.Where("REPLACE(LOWER(name),\" \",\"\") == \"{0}\"", value);
它顯示錯誤的動態LINQ條款
No applicable method 'LOWER' exists in type 'my_table'
我不能使用REPLACE
和LOWER
?
動態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)
這是用於SQL Server嗎? – juharr
是@juharr,適用於SQL Server! – zey
'name'應該是一個表示列名稱的變量,還是實際上是一個名爲「name」的列? – Crowcoder