を検索する:LINQクエリは、私は、この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を検索します。
私は、Entity Frameworkを使用して、次のLINQクエリを持っています。
from employee in context.Employee
where employee.first_name.Contains(matchString)
|| employee.last_name.Contains(matchString)
select employee
しかし、文字列 "RIC JONは" 何も見つかりません。
私はlinqクエリがSQLクエリと同じように動作するように見えません。
'(employee.first_name +" "+ employee.last_name).Contains(matchString)'(およびその逆)? – CodeCaster
同じ問題。それは部分的に期待通りにファーストネームにマッチしますが、文字列にスペースを入れると、それは完全に見つけられなくなります。 –
できれば[類似機能](https://stackoverflow.com/a/46975884/861716)を使用してください。 –