2009-08-12 6 views
4

私は、私のドメインモデルの子オブジェクトを持つオブジェクトを持っています。子供のプロパティに基づいて注文クエリを使用するにはどうすればよいですか?例えば子オブジェクトのプロパティで(n)休止状態でソートするにはどうしたらいいですか?

class FooType 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public BarType Bar { get; set; } 
} 

class BarType 
{ 
    public int Id { get; set; } 
    public string Color { get; set; } 
} 

... 

// WORKS GREAT 
var orderedByName = _session.CreateCriteria<FooType>().AddOrder(Order.Asc("Name")).List(); 

// THROWS "could not resolve property: Bar.Color of: FooType" 
var orderedByColor = _session.CreateCriteria<FooType>().AddOrder(Order.Asc("Bar.Color")).List(); 

私はこのシナリオを有効にするために何が必要ですか?私はNHibernate 2.1を使用しています。ありがとう!

答えて

13

エイリアスを追加するか、または子のネストされた条件を作成する必要があります。 NHibernateでこれを行う方法がわからない場合、HibernateではcreateCriteria()createAlias()のメソッドで行われます。 この順番で別名を接頭辞として使用します。

更新 Hibernateのコードサンプル:私はプロパティ/エンティティ名を大文字にかかわらず、それは、非常に類似してNHibernateの中で想像

Criteria criteria = session.createCriteria(FooType.class); 
criteria.createAlias("bar", "b"); 
criteria.addOrder(Order.asc("b.color")); 

。 NHibernateのドキュメントにはan exampleがあります。

+0

私にコードサンプルを教えてもらえますか?私はあなたが何を意味するのか分かりません。 –

関連する問題