Свободная проблема nhibernate, запрос - PullRequest
0 голосов
/ 26 августа 2011

Я бы очень признателен за помощь в решении проблемы, с которой я столкнулся.

Класс L содержит коллекцию R, а R содержит коллекцию Q. Каждый экземпляр R может существовать в нескольких экземплярах L икаждый экземпляр Q может существовать в нескольких экземплярах R.

Все работает нормально, но у меня есть функция, я не могу понять, как писать.

У меня есть функция, которая получаетэкземпляр / объект R и Q. Так что с R и Q я хотел бы запросить L и выяснить, где используется R.Я также хотел бы узнать, если и где Q используется.

Спасибо за информацию и помощь!

1 Ответ

1 голос
/ 29 августа 2011

Пересмотрено: исправлено неправильное определение типа

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, нет теста

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