我试图进行查询,但我得到了例外 -
无法识别的方法调用:System.Linq.Enumerbale:Boolean Any
现在,我明白了为什么我得到了例外,因为我试图在查询中使用linq,但是如果没有它我就无法弄清楚:
Disjunction dis = new Disjunction();
if (KasafotIds.Any())
{
dis.Add(Restrictions.Where<Entity>(x => x.Kasafot.Any(m => KasafotIds.Contains(m.Id))));
}
答案 0 :(得分:0)
使用QueryOver时需要明确加入。这可能有效:
var dis = new Disjunction();
if (KasafotIds.Any())
{
Foo alias = null;
query.JoinAlias<Foo>(x => x.Kasafot, () => alias);
dis.Add(Restrictions.Where(() => alias.Id.IsIn(KasafotIds)));
}