Наличие 3, где предложения в LINQ - PullRequest
0 голосов
/ 18 января 2012

У меня есть 3, где предложения в LINQ, но его сбой - я пробовал это

List<string> companies = new List<string>() { "0001001429"};
List<string> roleIDs = new List<string>() { "1486334", "1419282"};


var q = (from up in UserReports
        where up.UserType == "Internal"     
        where companies.Contains(up.CompanyId) && roleIDs.Contains(up.RoleId)
                             select new 
                             {
                                 UserId = up.UserId,
                                 FirstName = up.FirstName,
                                 LastName = up.LastName, ...});

Я также пытался получить 2 соединения -

var q = (from up in UserReports
                             join c in companies on up.CompanyID equals c
                             join r in rolesIDs on up.RoleId equals r
                             where up.UserType == "Internal"
                             select new 
                             {
                                 UserId = up.UserId,..});

Что я здесь не так делаю?

С уважением, Bhavik

1 Ответ

2 голосов
/ 18 января 2012

Попробуй это.Я изменил "где" с помощью "и"

var q = (from up in UserReports
    where up.UserType == "Internal"     
    && companies.Contains(up.CompanyId) && roleIDs.Contains(up.RoleId)
                         select new 
                         {
                             UserId = up.UserId,
                             FirstName = up.FirstName,
                             LastName = up.LastName, ...});

И вам нужно указать идентификатор компании и роли:

var q = (from up in UserReports
                         join c in companies on up.CompanyID equals c.Id
                         join r in rolesIDs on up.RoleId equals r.Id
                         where up.UserType == "Internal"
                         select new 
                         {
                             UserId = up.UserId,..});
...