我使用的是Nhibernate v2.1.2.4000。隨着標籤帖子之間的許多一對多的關係,我有查詢:Linq to NHibernate - 訂購匿名類型
tags
.Select(t => new { Name = t.Name, Count = t.Posts.Count })
.OrderBy(x => x.Count);
訂購匿名類型失敗(引用不設置到對象的實例)。這個問題與LinqToNH有關嗎?什麼可能是這個錯誤的來源?解決辦法是什麼? 如果它與LinqToNH有關,那麼如何用其他選項(即Criteria API)解決它?
編輯:當我嘗試亞當的ICriteria選項,SqlProfiler說執行的腳本是:
SELECT this_.Name as y0_, count(this_.Id) as y1_ FROM Tag this_ GROUP BY this_.Name ORDER BY count(this_.Id) asc
的映射標籤:
public class TagMap : ClassMap<Tag>
{
public TagMap()
{
Table("Tag");
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Name);
HasManyToMany(x => x.Posts)
.Table("PostTags")
.ChildKeyColumn("Post")
.ParentKeyColumn("Tag")
.Cascade.None().Inverse();
}
}
切換。不幸的是,升級到3.0不是目前的選擇。如何使用Criteria API編寫它?我也編輯了Criteria API選項的問題。 – rovsen 2010-12-01 21:02:44
亞當,當我嘗試結果集計數ICriteria版本總是1,雖然不是所有他們都是1.你知道爲什麼會發生這種情況嗎? – rovsen 2010-12-02 21:57:53