让我们说我们有以下课程:
public class Food
{
public IList<Fruit> Fruits;
public IList<Snacks> Snacks;
public IList<Vegetables> Vegetables;
(...)
}
public class Fruit
{
public int Id;
public string Name;
(...)
}
我们需要在列表中找到包含给定ID的水果的 Food 实体。因此,基本上,这是关于过滤具有给定水果 ID 的 Food 搜索结果。如何在NHibernate中使用限制机制实现这一目标?
NHibernate.ISession session = GetSession();
int fancyFruitId = 123;
session
.CreateCriteria(typeof(Food), "f")
.Add(Restrictions.Eq("f.Fruits.Id",fancyFruitId))
.List<Fruit>());
显然,这是行不通的,因为水果是一个列表,而不是单个对象。