2008-08-23 17 views
1

私はNHibernateを使ってWebアプリケーションを開発しています。あなたはどのように次のSQLクエリのNHibernateのクエリを記述するために私を伝えることができます:(N)Hibernate Auto-Join

SELECT v1.Id 
FROM VIEW v1 
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id 
ORDER BY v1.Position 

をそれは基本的に自動参加するのですが、私はNHibernateはでこれを書く方法を知りません。プロパティ名がテーブルの列名と同じであるとします。

答えて

1

元のエンティティでselectを実行して、2つのオブジェクト間の関連付けを "lazy = false"にすることができます。エンティティがマップされている限り、両方が返され、オブジェクトにアクセスしようとするとlazyloadingexceptionが返されません。

"lazy = false"をマップしたくない場合は、結果を反復して何らかの操作を実行することもできます(nullの場合など)。if(v1.AssocatedObject == null){セッションが開いている間にデータがロードされるようにします。

アップデート:私はそれよりも良い方が実際にそこにある

だと思い、NHibernateUtil.Initialise()それを介してさまようことなく、コレクションを初期化することができます。

関連する問題