2011-03-22 14 views
0

Like可以通過ESQL傳遞一個字符串來實現......但不是作爲實際操作符或方法到目前爲止。我發現許多文章表明變通其中,最interesting的我得到一個例外:在指定的 方法「布爾贊(System.String, System.String)」:在EF中有使用LIKE的簡單方法嗎?

NotSupportedException異常鍵入 'EF4.Extensions'不能將 轉換爲LINQ to Entities存儲 表達式。

這裏還有什麼嗎? EF 4.1已經結束......任何新聞或清潔選項?

回答

4

在EF 4.x中,string.StartsWith,string.EndsWith和string.Contains被轉換爲SQL LIKE。 (雖然不支持多個通配符...)

+0

據我瞭解,它們根本不支持通配符,所以您是通過代碼中的braching手動選擇開始,結束還是包含? – Maslow 2011-03-22 13:05:19

1

首先,@KristoferA對於SqlClient是絕對正確的。
但是,此功能取決於EF提供程序。例如,適用於Oracle,MySQL,PostgreSQL和SQLite的Devart提供程序在EF v1和EF v4中的StartsWith,EndsWith和Contains String方法中包含Like調用。其他提供商也可能不包含EF v4中的Like支持。

相關問題