在linq中使用like关键字

Cod*_*oob 1 linq entity-framework sql-like

可能重复:
如何在Linq中使用SQL Like%?

我使用mvc 3和实体框架.我如何使用linq或lambda表达式进行搜索.请帮助

Stu*_*tLC 5

由于目标是将EF表达式解析为SQL(LIKE应该应用谓词),因此至少有3种方法可以执行此操作,具体取决于您希望%放置通配符的位置

C#:

.Where(customer => customer.Name.StartsWith("Bloggs"))
Run Code Online (Sandbox Code Playgroud)

=> SQL

 WHERE c.Name LIKE 'Bloggs%'
Run Code Online (Sandbox Code Playgroud)

C#:

.Where(customer => customer.Name.Contains("Bloggs"))
Run Code Online (Sandbox Code Playgroud)

=> SQL

WHERE c.Name LIKE '%Bloggs%'
Run Code Online (Sandbox Code Playgroud)

C#:

.Where(customer => customer.Name.EndsWith("Bloggs"))
Run Code Online (Sandbox Code Playgroud)

=> SQL

WHERE c.Name LIKE '%Bloggs'
Run Code Online (Sandbox Code Playgroud)

如果适用,StartsWith应优先于其他两个,因为它更有可能在列上使用索引.(%x%通常会导致索引或表扫描).