C# NHibernate统计独特访问的标准

C# NHibernate统计独特访问的标准,c#,nhibernate,C#,Nhibernate,我有两张桌子,在这个例子中,我将它们分别是Vists和Cities 拜访 UserAccountID(映射到UserAccount属性) CityID(映射到城市属性) 访问日期 城市 城市ID 名字 我想写一个标准,它将返回特定用户访问过的不同城市的数量 到目前为止,我已经: return this.Framework.GetSession().CreateCriteria<Visits>() .Add(Restrictions.Eq(

我有两张桌子,在这个例子中,我将它们分别是Vists和Cities

拜访

  • UserAccountID(映射到UserAccount属性)
  • CityID(映射到城市属性)
  • 访问日期
城市

  • 城市ID
  • 名字
我想写一个标准,它将返回特定用户访问过的不同城市的数量

到目前为止,我已经:

       return this.Framework.GetSession().CreateCriteria<Visits>()
            .Add(Restrictions.Eq("UserAccount", user))
            .SetProjection(Projections.Count(Projections.Id()))
            .UniqueResult<int>();
返回此.Framework.GetSession().CreateCriteria()
.Add(Restrictions.Eq(“UserAccount”,用户))
.SetProjection(Projections.Count(Projections.Id()))
.UniqueResult();
但是,当我有一个访问过的用户时:

  • 伦敦
  • 曼彻斯特
  • 利兹
  • 伦敦
这个查询将返回4,我是指访问的不同城市的数量(在本例中为3)


我该怎么做呢?

您是否尝试过使用
Projections.GroupProperty(“CityID”)
?它应该能够达到你想要的结果

这可能也有帮助