【问题标题】:Fluent nhibernate problem, query流畅的nhibernate问题,查询
【发布时间】:2011-08-26 14:20:42
【问题描述】:

如果我遇到的问题能得到帮助,我真的很感激。

L 类拥有 R 的集合,R 拥有 Q 的集合。 R的每个实例可以存在于L的多个实例中,Q的每个实例可以存在于R的多个实例中。

一切正常,只是我有一个我不知道如何编写的函数。

我有一个接收 R 和 Q 的实例/对象的函数。因此,对于 R 和 Q,我想查询 L 并找出使用 R 的位置。我还想知道是否以及在哪里使用了 Q。

感谢您的信息和帮助!

【问题讨论】:

    标签: fluent-nhibernate nhibernate.search nhibernate-criteria


    【解决方案1】:

    修订:修正错误输入

    R myR = ...;
    Q myQ = ...;
    
    var LsWithMyRandFlagIfQisUSed = session.QueryOver<L>()
        .JoinQueryOver(l => l.Rs)
        .Where(r => r.Id == myR.Id)
        .List<L>()
        .Select(l => new
        {
            L = l,
            QisUsed = l.Rs.Any(r => r.Qs.Contains(myQ)),
        });
    

    编辑:添加 linq 语法没有 testet

    R myR = ...;
    Q myQ = ...;
    
    var LsWithMyRandFlagIfQisUSed =
        from l in session.Query<L>()
        where l.Rs.Contains(myR)
        select new 
        {
            L = l,
            QisUsed = l.Rs.Any(r => r.Qs.Contains(myQ)),
        });
    

    【讨论】:

    • 接缝我忘了在这里回答。感谢您的尝试,但我无法使其正常工作。
    • 有什么问题?也许我可以解决它
    • 啊,我明白了,我用一个例子试了一下,并为你的名字重写了它,但有错误
    • 啊,谢谢,去试试。我是 queryover 的新手,还没有时间完全理解它的语法和我一直处于紧张的时间表的好处。我觉得这有点棘手.. 糟糕的是他们无法覆盖 linq / lambda..
    • 他们也有。只需using NHibernate.Linq,您可以使用from l in Session.Query&lt;L&gt;() where ...
    猜你喜欢
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 2012-06-28
    • 1970-01-01
    • 2011-11-17
    • 2014-09-17
    相关资源
    最近更新 更多