#linq #linq-to-sql
#linq #linq-to-sql
Вопрос:
Мне интересно, как и могу ли я запрашивать несколько строк / целых чисел, легко выполняя что-то подобное?
var test = from a in db.PlasserLans
from b in db.Ulans
where a.registeredNick == b.Username amp;amp;
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,
};
Ответ №1:
Вы можете создать список перед запросом, что облегчило бы его понимание. Также вы можете выполнить объединение вместо зацикливания на обеих таблицах.
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,
};
Ответ №2:
В Linq-2-sql все наоборот
where .... amp;amp;
{"Ayuris" , "Crey" , "DjMofasa"}.Contains(a.Nick)
Это наизусть, не уверен, работает ли прямое использование {}, но вам нужно проверить .Содержит () для linq-2-sql, и это будет работать.
Комментарии:
1. Мне пришлось сначала создать массив, запустив его непосредственно в {} не работает. заставил это работать, используя ваш способ косвенно