流利的nhibernate问题,查询

时间:2011-08-26 14:20:43

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

我真的很感激我对问题的一些帮助。

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

除了我有一个我无法弄清楚如何写作的功能外,一切正常。

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

感谢您提供信息和帮助!

1 个答案:

答案 0 :(得分: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语法hasnt 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)),
    });