Я пытаюсь получить список родителей, в которых дочерняя коллекция не содержит элемент определенного типа. Эквивалент LINQ будет выглядеть примерно так:
dataset.Where(x => x.Items.FirstOrDefault(y => y.Type.Code == "ABC") == null)
Модель объекта Родитель> Дочерний элемент (Элементы)> Тип> Код
Если родительский объект является моим совокупным корнем, как бы я смоделировал это в критериях / запросах NHibernate? Вот моя первая попытка:
var results = session.CreateCriteria<Parent>()
.CreateCriteria("Items")
.CreateCriteria("Type")
.Add(Restrictions.Not(Restrictions.Eq("Code", "ABC")))
.SetResultTransformer(Transformers.DistinctRootEntity)
.List<Parent>();
Похоже, это не возвращает нужные объекты - просто возвращает их все.