对于我遇到的问题,我真的很感激。
类 L 持有 R 的集合,R 持有 Q 的集合。R 的每个实例可以存在于 L 的多个实例中,并且 Q 的每个实例可以存在于 R 的多个实例中。
一切正常,除了我有一个我不知道如何编写的函数。
我有一个接收 R 和 Q 的实例/对象的函数。因此,对于 R 和 Q,我想查询 L 并找出使用 R 的位置。我还想知道是否以及在哪里使用了 Q。
感谢您的信息和帮助!
对于我遇到的问题,我真的很感激。
类 L 持有 R 的集合,R 持有 Q 的集合。R 的每个实例可以存在于 L 的多个实例中,并且 Q 的每个实例可以存在于 R 的多个实例中。
一切正常,除了我有一个我不知道如何编写的函数。
我有一个接收 R 和 Q 的实例/对象的函数。因此,对于 R 和 Q,我想查询 L 并找出使用 R 的位置。我还想知道是否以及在哪里使用了 Q。
感谢您的信息和帮助!
修订:固定错误输入
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)),
});