1
A
回答
4
由於目標是爲EF表達式被解析成SQL,其中應適用的LIKE
斷言,至少有3種方法可以做到這一點,取決於您希望%
通配符被放置
C#:
.Where(customer => customer.Name.StartsWith("Bloggs"))
=> SQL
WHERE c.Name LIKE 'Bloggs%'
C#:
.Where(customer => customer.Name.Contains("Bloggs"))
=> SQL
WHERE c.Name LIKE '%Bloggs%'
C#:
.Where(customer => customer.Name.EndsWith("Bloggs"))
=> SQL
WHERE c.Name LIKE '%Bloggs'
如果適用,StartsWith
應當優先於第另外兩個,因爲它有更好的機會在列上使用索引。 (%x%
通常會導致索引或表掃描)。
1
它複製到 - LIKE operator in LINQ How to do SQL Like % in Linq?
通常使用String.StartsWith /的endsWith /包含。例如:
var Code = .Where(p => p.Code.Contains("BALTIMORE"))
var Code = .Where(p => p.Code.StartsWith("BALTIMORE"))
var Code = .Where(p => p.Code.EndsWith("BALTIMORE"))
+0
我剛剛使用包含,它的工作。如果我不包含startswith並以代碼結束,它會中斷嗎? – CodeNoob 2012-03-13 06:30:08
相關問題
- 1. LINQ orderby關鍵字與OrderBy擴展方法的等效排序
- 2. c#Linq關鍵字?
- 3. LINQ關鍵字搜索與包含
- 4. LINQ到NHibernate,讓關鍵字
- 5. 飛鏢等待關鍵字
- 6. 使用LINQ的關鍵字搜索關鍵字
- 7. LINQ關鍵字搜索與排序依據基於計數(LINQ到SQL)相關
- 8. 瞭解yield關鍵字和LINQ
- 9. 除LINQ中的關鍵字問題
- 10. 使用equals關鍵字在LINQ
- 11. LINQ多個關鍵字搜索PagedList
- 12. 動態LINQ中的SQL Like關鍵字
- 13. 在mercurial中是否有與svn:關鍵字等價的東西?
- 14. 是否存在與C#的'checked'關鍵字等效的Java?
- 15. 是否存在與UniQuery SAMPLE關鍵字等效的UniData SQL?
- 16. VB.NET等價於C#var關鍵字
- 17. GLSL ES等同於OpenGL GLSL'out'關鍵字?
- 18. Java中'where'fortran關鍵字的等價性?
- 19. TSQL等效於PostgreSQL「PERFORM」關鍵字?
- 20. 異步等待關鍵字錯誤
- 21. 'break'的等效VB關鍵字
- 22. 與動態關鍵字
- 23. VS2010與extern關鍵字
- 24. 與「鏈接」關鍵字
- 25. requestAnimationFrame與此關鍵字
- 26. 使用rownum與關鍵字
- 27. 與 「刪除」 關鍵字
- 28. objective c 2.0 - 關鍵字鑄造與非關鍵字鑄造
- 29. dict.keys()中的關鍵字與關鍵字有什麼區別?
- 30. Linq'等於'關鍵字Revisited - 它是否比較對象的值和引用?
我剛剛使用包含,它的工作。如果我不包含startswith並以代碼結束,它會中斷嗎? – CodeNoob 2012-03-13 06:52:14
包含將處理/涵蓋所有情況,但會生成SQL:LIKE'%Bloggs%',通常會導致索引掃描/表掃描。如果你知道你的搜索以一個單詞開始,那麼像'Bloggs%'在SQL中比'%Bloggs%'快(如果它正確編制索引)。 AFAIK EndsWith(即'%Bloggs')對SQL索引不會很有用 – StuartLC 2012-03-13 08:13:14