小编典典

如何使用NHibernate进行此查询

sql

如何使用NHibernate进行此查询

select top 10 count(distinct classedition.createdby_id) as editions, class.id,
       class.name, class.createdon, class.createdby_id
from class 
inner join classedition on class.id = classedition.class_id
group by class.id, class.name, class.createdon, class.createdby_id
order by editions desc, class.createdon desc

我正在使用NHibernate3。
我尝试使用新的Linq提供程序来完成此操作,但未成功。只要它产生上面确切的sql查询,我就不在乎它的执行方式。我希望编写一个强类型查询,如果可能的话,不要使用魔术字符串。

我是NHibernate的新手,所以这个问题可能很简单。

这是更多信息

我将Fluent NHibernate与AutoMappings结合使用。C#类非常简单:

public  class Class
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual DateTime CreatedOn { get; set; }
}

public class ClassEdition
{
    public virtual int Id { get; set; }
    public virtual Class Class { get; set; }
    public virtual User CreatedBy { get; set; }
}

public class User
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
}

阅读 177

收藏
2021-04-07

共1个答案

小编典典

我终于通过使用视图解决了这个问题。

我不想变得无礼,但是NHibernate社区似乎更倾向于在我提出问题的方式上争论,然后对问题本身做出回应。请参阅评论,以了解Diego
Mijelshon的答案。我在nhusers(Google网上论坛)上收到了相同的要求(关于使用单元测试):http
://groups.google.com/group/nhusers/browse_thread/thread/4c74269aefb918fc

2021-04-07