創建一個只有您需要的屬性的類,通常這是一個類似{Id,Label}的彙總類,您可以在需要簡單類型的任何地方重複使用它,例如在列表中。使用ProjectionList來定義要返回的列。然後使用Transformers.AliasToBean將結果轉換爲簡單類型。
ProjectionList projectionList = Projections.ProjectionList();
projectionList.Add(Projections.Property("EmployeeID"), "Id");
projectionList.Add(Projections.Property("EmployeePosition"), "Label");
var x = DetachedCriteria.For(Employee);
x.SetProjection(projectionList);
x.SetResultTransformer(Transformers.AliasToBean(SimpleType)));
return x.GetExecutableCriteria(UnitOfWork.CurrentSession).List<SimpleType>();
這就是問題,它有很多bug,在特定情況下它對我來說沒有用處。我希望他們會在NH 3.0 – Jacob 2010-04-14 20:29:47
嗯。我們毫不費力地在一個相當大的項目中使用它。因爲我們沒有處理太多複雜的連接,所以可能沒有足夠的推動它。 – 2010-04-14 20:38:19