Entity Framework 4 поиск по комбинированным полям - PullRequest
6 голосов
/ 25 апреля 2011

Как мне искать по двум объединенным полям.Поиск должен выполняться в конце SQL, если это возможно.

Так, скажем, у меня есть таблица клиентов с именем и фамилией.Я бы хотел, чтобы пользователи могли выполнять поиск по обоим столбцам с помощью одного поля поиска.

Мой запрос в настоящее время выглядит следующим образом:

var query = DbContext.Customers
    .Where(c => c.FirstName.Contains(search) || c.LastName.Contains(search));

, но он должен выглядеть примерно так:

var query = DbContext.Customers
     .Where(c => c.FullName.Contains(search));

Ответы [ 2 ]

15 голосов
/ 26 апреля 2011

Это невозможно, если у вас также не сопоставлен столбец FullName. Обойти эту проблему может быть String.Concat, который разрешен в Linq-to-entity:

var query = DbContext.Customers
                     .Where(p => String.Concat(p.FirstName, " ", p.LastName)
                                       .Contains(search));
1 голос
/ 03 октября 2013

Вы можете использовать вычисляемый столбец в базе данных и отобразить, что например,

alter table Customer add FullName AS FirstName + ' ' + LastName

(Не очень, я знаю)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...