Подтвердить что ты не робот

Сборник критериев NHibernate содержит

У меня есть отношение родительский/дочерний, сопоставленный с множеством-ко-многим.

public class Parent
{
    public ISet<Child> Children { get; set; }
}

public class Child {}

public class ParentMap : ClassMap<Parent>
{
    HasManyToMany(x => x.Children)
        .AsSet();
}

Как я могу написать запрос, чтобы выбрать всех родителей, которые содержат данный ребенок? Я бы предположил, что это будет что-то вроде этого, но этого API не существует:

Session.CreateCriteria<Parent>()
   .Add(Expression.Contains("Children", child)
   .List<Parent>();

Я не могу на всю жизнь найти ответ нигде. Мой мозг сегодня не функционирует полностью, и Google до сих пор мне не удалось.

4b9b3361

Ответ 1

Как насчет чего-то подобного?

Session.CreateCriteria<Parent>()
   .CreateCriteria("Children")
   .Add(Expression.Eq("Id", child.Id)
   .List<Parent>();

или

Session.CreateCriteria<Parent>()
   .CreateCriteria("Children")
   .Add(Expression.In("Id", child.Id)
   .List<Parent>();

чтобы вы могли передать массив идентификаторов.