我想知道我可以做一个收集集合的where子句吗?
List<string> myStrings = new List<strings> {"1", "2"};
session.Query<Table>().Where(x => x.Id == myStrings).ToList();
我基本上想从我的db表中获取与该查询中的所有内容匹配的所有行。
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创建查询语法
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
答案 0 :(得分:4)
session.Query<Table>().Where(x => myStrings.Contains(s => x.Id));
答案 1 :(得分:1)
session.Query<Table>().Where(x => myString.All(s => x.Id == s));
答案 2 :(得分:0)
您应该在集合中使用Any或All扩展方法