我想使用Criteria Query计算NHibernate中的一组模型。
帐户模型有联系人(设置),联系人模型有地址(设置)。
我想通过输入帐户对象来计算地址。
我通过简单的foreach循环实现了临时。
如果有人知道那么请帮助我。
先谢谢。
答案 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();
这通过最佳查询给出了我想要的实际结果。