Fluent Nhibernate - 无法识别的方法调用:System.Linq.Enumerbale:Boolean任何

时间:2016-02-14 09:16:20

标签: c# linq nhibernate fluent-nhibernate

我试图进行查询,但我得到了例外 -

  

无法识别的方法调用: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))));
}

1 个答案:

答案 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)));
}