我真的很感激我对问题的一些帮助。
L类拥有R的集合,R拥有Q的集合。 R的每个实例可以存在于L的多个实例中,并且Q的每个实例可以存在于R的几个实例中。
除了我有一个我无法弄清楚如何写作的功能外,一切正常。
我有一个函数接收R和Q的实例/对象。所以使用R和Q我想查询L并找出R的使用位置。我还想知道Q是否使用以及在哪里使用。
感谢您提供信息和帮助!
答案 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)),
});