Как я могу сделать запрос, используя несколько строк в операторе where в LINQ - PullRequest
2 голосов
/ 10 ноября 2011

Мне интересно, как и если я могу запросить несколько строк / целых, легко сделать что-то вроде этого?

var test = from a in db.PlasserLans
from b in db.Ulans
where a.registeredNick == b.Username &&
a.Nick == {"Ayuris" , "Crey" , "DjMofasa" , "esel" , "Firaxa" , 
           "Kindleguy" , "Michigo" , "moiC" ,"Shibiz"}
orderby a.Nick
select new
{
    Nick = a.Nick,
    Username = b.Username,
    Email = b.UserEMail,
    RealName = b.UserRealname,
};

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

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

List<string> nickList=new List<string> {"Ayuris" , "Crey" , "DjMofasa" , "esel" , "Firaxa" , "Kindleguy" , "Michigo" , "moiC" ,"Shibiz"};

var test = from a in db.PlasserLans
           join b in db.Ulans
           on a.registeredNick equals b.Username
           where nickList.Contains(a.Nick)
           orderby a.Nick
           select new
                  {
                      Nick = a.Nick,
                      Username = b.Username,
                      Email = b.UserEMail,
                      RealName = b.UserRealname,
                  };
1 голос
/ 10 ноября 2011

В Linq-2-sql наоборот

 where .... &&
 {"Ayuris" , "Crey" , "DjMofasa"}.Contains(a.Nick)

Это наизусть, не уверен, работает ли прямое использование {}, но вам нужно проверить .Contains () для linq-2-sql, и он будет работать.

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