NHibernate Linq where предложение: значение в коллекции


Мне интересно, могу ли я сделать предложение where, которое принимает коллекцию?

List<string> myStrings = new List<strings> {"1", "2"};

session.Query<Table>().Where(x => x.Id == myStrings).ToList();

Я в основном хочу получить все строки из моей таблицы БД, которые соответствуют всему в этом запросе.

session.Query<Table>().Where(x => x.Id == myStrings[0]).ToList();
session.Query<Table>().Where(x => x.Id == myStrings[1]).ToList();
session.Query<Table>().Where(x => x.Id == myStrings[N]).ToList();
Так вот что я должен был бы сделать прямо сейчас. Я бы, вероятно, через это в цикле for, но это много запросов, и я скорее просто делаю один запрос.

Или мне нужно использовать синтаксис запроса NHibernate create

var query = "Select * From Where In (:Id)";
session.CreateQuery(query)SetParameter("Id",myStrings) // not sure if I have to something like .ExecuteUpdate(); but just for select instead
3 2

3 ответа:

session.Query<Table>().Where(x => myString.All(s => x.Id == s));
session.Query<Table>().Where(x => myStrings.Contains(s => x.Id));

Вы должны использовать любой или все методы расширения в вашей коллекции