【发布时间】:2017-11-14 12:26:30
【问题描述】:
我有这个 SQL 查询:
SELECT
*
FROM
employeeTable
WHERE
(
concat(first_name, ' ', last_name) like concat('%', replace(@MatchString, ' ', '%'), '%')
or
concat(last_name, ' ', first_name) like concat('%', replace(@MatchString, ' ', '%'), '%')
)
通过使用部分值搜索姓名和姓氏,它可以完美地工作。通过使用部分字符串搜索用户。比如:
“ric jon”将查找 Rick Jones、Richard Jonesy 和 Jonathan Prichter。
我有以下 Linq 查询,使用实体框架:
from employee in context.Employee
where employee.first_name.Contains(matchString)
|| employee.last_name.Contains(matchString)
select employee
但是字符串“ric jon”什么也没找到。
我似乎无法让 linq 查询与 SQL 查询一样工作。
【问题讨论】:
-
where (employee.first_name + " " + employee.last_name).Contains(matchString)(反之亦然)? -
同样的问题。它与预期的一样部分匹配名字,但是当在字符串中放置一个空格时,它会完全停止查找。
-
尽可能使用Like function。
标签: sql entity-framework linq