Допустим, у нас есть следующие классы:
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 - это список, а не один объект.