我怎樣才能做到這一點查詢與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