C # или VB.NET приветствуются.
Я пишу запрос, чтобы выбрать все записи, которые имеют какую-либо часть параметра.
У меня есть одна таблица под названием «Сотрудники». У некоторых людей есть такие имена: Джон Дэвид Кларк
Если параметр
- "Джон"
- "Джон Давид"
- "Дэвид Джон"
- "Джон Кларк"
- "Кларк Джон"
Я смогу получить результат обратно, если в параметрах есть совпадение.
Если я использую Function Contains (q.FirstName & "" & q.LastName) .Contains (employeeName), я не верну никаких результатов, если employeeName имеет значение "John Clark"
Функция Contains ищет только следующие слова слева направо. Он не соответствует ни одному слову за раз.
Так вот почему я использовал это в Linq to SQL:
Dim employeeName As String
query = From q In db.Employees _
Where (q.FirstName & " " & q.LastName).Split(CChar(" ")).Intersect(employeeName.Split(CChar(" "))).Any _
Select q
Я получил следующую ошибку:
Локальная последовательность не может использоваться в реализации операторов запросов LINQ to SQL, кроме оператора Contains ()
Есть ли другой способ запросить FirstName и LastName, которые имеют какую-либо часть параметра?