2011-12-16 5 views
1

この状況でどちらを使用すべきか疑問に思っています。私は、サーバーに値を返すドロップダウンリストを持っています。サーバーは現在、loadを使用してオブジェクトを作成します。それから、値を取得し、それを列挙型に変換しようとします。GetまたはLoad-nhibernateを使用する必要がありますか?

いくつかの読書をした後、私はPK以外のオブジェクトから何かにアクセスする必要があるため、Getを使うべきだと思われます。

答えて

1

一般に、ID自体以外のプロパティにアクセスする必要がある場合はGetを使用してください。これにより、コードの意図がはるかに明確になり、長期的にはより効率的になる可能性があります。 Loadは、データベースへの不必要なラウンドトリップを行わずに、エンティティを作成または更新するときにFK関係を設定する必要がある場合に最適です。

詳細については、Ayende's articleを参照してください。

0

GetLoadは、遅延読み込みが有効な場合は異なります。 メソッドLoadを使用する場合、NHibernateはデータベースからエンティティを取得せず、代わりにプロキシオブジェクトを作成し、唯一の入力プロパティはIDです。 他のプロパティにアクセスすると、NHibernateはDBからエンティティをロードします。

あなたのケースでは、最良の使用は取得する必要があります。

関連する問題