Noob问题:如何制定关联计数标准?

时间:2010-04-15 02:58:32

标签: c# .net nhibernate

我从NHibernate开始。

我有一个名为Person的类型,其集合为Address

我如何获取:

  

所有拥有至少2个地址的人

使用ICriteria?提前谢谢。

1 个答案:

答案 0 :(得分:1)

为此,您需要使用子查询。

Address alias = null;
ICriteria criteria = personsCriteria.CreateCriteria<Person>(x => x.Address, () => alias);
var addressCount = DetachedCriteria.For<Address>();
addressCount.SetProjection(Projections.RowCount());
addressCount.Add<Address>(x => x.User.Id == alias.Id);
criteria.Add(Subqueries.Eq(2, addressCount));

我正在使用ICriteria lambda扩展。您可以查看它们here