Я чувствую, что это что-то просто, и я просто не хватает его ...Использование String.Contains() через несколько столбцов в модели Ef6
нужно сделать быстрый и грязный поиск текста на FirstName и LastName столбцов вместе с моделью, как это:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
образец данных:
FirstName LastName
-------------------------------
John Appleseed
John Anderson
Chris Cringle
George Washington
Backend является SQL Server, с помощью LINQ к Entities и Entity Framework 6, мне нужно сделать поиск по полному имени, но что-то вроде этого не будет работать:
var results = from p in db.Persons
where (p.FirstName + ' ' + p.LastName).Contains(keyword)
select p;
LINQ не нравится. Это для метода автозаполнения; Я хочу, чтобы он смог найти результаты для «john a», если кто-то наберет это - это будут первые две строки из данных образца.
Как я могу это сделать?
Это будет в конечном итоге сделать TSQL с 'LIKE', что означает плохую производительность. Если у вас много данных, и вам нужно это выполнить, я бы предложил создать расчетный столбец для конкатенации и создать на нем полный текстовый индекс. – Jodrell
Это всего лишь пара тысяч строк. Я в порядке с заявлением LIKE. –