與實體框架中的運營商一樣?

.net entity-framework linq-to-entities sql-server

我們正在嘗試在實體框架中為包含字符串字段的實體實現“LIKE”運算符,但似乎不支持它。有沒有其他人試圖做這樣的事情?

這篇博客文章總結了我們遇到的問題。我們可以使用contains,但這只匹配LIKE的最簡單的情況。組合contains,startswith,endswith和indexof將我們帶到那裡,但需要在標准通配符和Linq to Entities代碼之間進行轉換。

一般承認的答案

這是一個舊帖子,但對於任何尋找答案的人來說, 這個鏈接應該有所幫助。

精簡版:

SqlFunctions.PatIndex方法 - 在所有有效的文本和字符數據類型上返回指定表達式中第一次出現模式的起始位置,如果未找到模式則返回零

命名空間:System.Data.Objects.SqlClient程序集:System.Data.Entity(在System.Data.Entity.dll中)

論壇帖子中也會出現一些解釋。


熱門答案

我真的對EF一無所知,但在LINQ to SQL中,你通常使用String.Contains表達一個LIKE子句:

where entity.Name.Contains("xyz")

翻譯成

WHERE Name LIKE '%xyz%'

(使用StartsWithEndsWith進行其他行為。)

我不完全確定這是否有用,因為當你說你試圖實現 LIKE時,我不明白你的意思。如果我完全誤解了,請告訴我,我會刪除這個答案:)



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因