2010-08-12 36 views
2

我該如何急於獲取一個集合,但只有N個第一項?圍住一個熱切的收集

使用此代碼的作品,但有沒有'官方的方式'來實現這一目標?

public Gallery GetById(int id) 
{ 
    var session = GetSession(); 

    var criteria = session.CreateCriteria<Gallery>() 
     .Add(Expression.Eq("Id", id)) 

     .SetFetchMode("Pictures", FetchMode.Eager)   
     .CreateAlias("Pictures", "p") 

     .SetFirstResult(0) 
     .SetMaxResults(24) 
     ; 

    return criteria.UniqueResult<Gallery>(); 
} 

在這種情況下,我在邊界的Gallery的結果,這是無論如何獨特的結果,但我想結合的Pictures結果。

+0

這看起來對我很好。 – 2010-08-12 21:55:42

+0

在這種情況下。但其他情況呢? – stacker 2010-08-13 00:00:31

回答

0

您的代碼正常工作,並且完全可以接受。如果你想總是熱切地獲取,你可以在你的表映射配置(HBM,流利,或任何你使用的解決方案)中設置它,然後明確地告訴它不要爲你不想要的情況急切地取回。兩種方式都可以正常工作並且可以接根據您的項目需求和團隊的編碼風格,使用更方便或安全的方式。