在nhibernate中计算第二级模型集

时间:2014-04-18 06:09:36

标签: nhibernate

我想使用Criteria Query计算NHibernate中的一组模型。

帐户模型有联系人(设置),联系人模型有地址(设置)。

我想通过输入帐户对象来计算地址。

我通过简单的foreach循环实现了临时。

如果有人知道那么请帮助我。

先谢谢。

1 个答案:

答案 0 :(得分:0)

感谢RadimKöhler,

我找到了我的解决方案:

var count = (Int32)Session.CreateCriteria(typeof(Account)) .Add(Restrictions.Eq("Id", account.Id)) .CreateCriteria("Contacts", "Contacts", JoinType.InnerJoin, Restrictions.IsNotEmpty("Addresses")) .SetProjection(Projections.Count("Id")).UniqueResult();

然后我使用了以下条件查询:

var count = (Int32)Session.CreateCriteria(typeof(Address))
                    .CreateCriteria("Contact", "Contact",JoinType.InnerJoin)
                    .Add(Restrictions.Eq("Account.Id",accountId))
                    .SetProjection(Projections.Count("Id")).UniqueResult();

这通过最佳查询给出了我想要的实际结果。