Добавление моего запроса в LINQ to SQL - PullRequest
1 голос
/ 21 января 2011

Я пытаюсь построить свой запрос l2s, основываясь на существовании параметра. Я могу добиться этого для прямых свойств моего объекта, но когда одно из свойств является множеством -> множеством, я не могу понять это.

Например, в моей пользовательской таблице есть столбец имени.
Существует также таблица брендов, и пользователь может иметь несколько брендов, которые хранятся в таблице brand_users.

Я хочу добавить в свой запрос условие, которое будет запрашивать только пользователей, у которых есть запись в таблице brand_users с определенным брендом.

GetUser(UserSearchParameter searchParam)
{
    var query = from u in Users select u;

    if(searchParam.Name != null)
        query = query.Where(u => u.Name.Contains(searchParam.Status)); // this works!!

    if(searchParam.BrandId != null)
        query = query.Where??? // this is where I'm stuck

    return new List<user>(query);
}

Ответы [ 2 ]

2 голосов
/ 21 января 2011

Как насчет:

query = query.Where(u => Brands.Any(brand => brand.UserId == u.UserId &&
                                          brand.BrandId == searchparam.brandId));

Трудно дать более подробную информацию, не зная структуру таблицы ваших брендов или то, как она представлена ​​в LINQ to SQL.

1 голос
/ 21 января 2011

Что-то вроде

query = query.Where(u => u.Brand_Users.Any());

Предполагается, что вы сопоставили таблицу brand_users many-> many в отношении L2S с именем, как указано выше.

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