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