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

本文关键字:调用 System Linq Boolean Enumerbale 方法 Nhibernate 识别 Fluent | 更新日期: 2023-09-27 18:34:28

我正在尝试进行查询,但我得到了一个例外 -

无法识别的方法调用:System.Linq.Enumerbale:Boolean Any

现在,我明白为什么会出现异常,因为我正在尝试在 queryover 中使用 linq,但没有它我无法弄清楚该怎么做:

Disjunction dis = new Disjunction();
if (KasafotIds.Any())
{
    dis.Add(Restrictions.Where<Entity>(x => x.Kasafot.Any(m => KasafotIds.Contains(m.Id))));
}

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

在使用

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