我怎样才能做到这一点查询与NHibernate我怎样才能做到这一点查询与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
我使用NHibernate 3.我试过没有成功的新LINQ提供程序去做。只要它产生上述确切的SQL查询,我不在乎它的做法。如果可能的话,我宁愿写一个强类型的查询,而不使用魔术字符串。
我是NHibernate的新手,所以这个问题可能很简单。
这里有一些更多的信息
我用流利的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; }
}
这不是我所说的“强类型”,因为它是一个普通的旧字符串。如果表“Class”被重命名,那么没有任何东西阻止应用程序编译。但我认为(还没有尝试过)它正在做我想做的事。在接受这个答案之前,我会等待一些可能的选择。 – W3Max 2010-12-04 04:28:02