Искать два столбца в LINQ to SQL? - PullRequest
5 голосов
/ 15 апреля 2011

Я пытаюсь сделать простой метод поиска, используя LINQ to SQL в Visual Studio. В моей базе данных у меня есть поля «Имя» и «Фамилия», и моя строка поиска - «имя». Как я могу сделать простой запрос LINQ, который ищет оба поля?

В простом SQL я бы сделал что-то вроде этого:

SELECT (Firstname + Lastname) as 'Fullname'
FROM   table
WHERE  Fullname LIKE '%searchstring%'

Ответы [ 3 ]

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

Обычно нужно сделать следующее:

var users =
    from user in db.Users
    where user.FirstName.Contains(searchString) ||
        user.LastName.Contains(searchString)
    select user;

Это, однако, не эквивалентно вашему запросу SQL.Следующее эквивалентно:

var users =
    from user in db.Users
    let fullName = user.FirstName + user.LastName
    where fullName.Contains(searchString)
    select user;
4 голосов
/ 15 апреля 2011
var result = from p in db.Table
             let fullname = p.FirstName + " " + p.Lastname
             where fullname.Contains(searchString)
             select new { Fullname = fullname };
1 голос
/ 15 апреля 2011
// get all items from table where firstname like searchstring or lastname like searchstring
var result = from p in db.Table
             where (p.Firstname.Contains(searchString) || p.Lastname.Contains(searchString))
             select p;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...