Ограничение NHibernate - объект с заданным идентификатором внутри свойства списка - PullRequest
0 голосов
/ 04 декабря 2018

Допустим, у нас есть следующие классы:

public class Food
{
    public IList<Fruit> Fruits;
    public IList<Snacks> Snacks;
    public IList<Vegetables> Vegetables;

    (...)
}

public class Fruit
{
    public int Id;
    public string Name;
    (...)
}

И мы должны найти внутри списка список Food , содержащий Fruit с заданным идентификатором.Так что в основном речь идет о фильтрации Food результатов поиска с заданными Fruit ID .Как этого добиться, используя механизм ограничения в NHibernate?

Ожидаемое решение:

NHibernate.ISession session = GetSession();
int fancyFruitId = 123;

session
    .CreateCriteria(typeof(Food), "f")
    .Add(Restrictions.Eq("f.Fruits.Id",fancyFruitId))
    .List<Fruit>());

Очевидно, что это не сработает, поскольку Fruits - это список, а не один объект.

...