NHibernateを使ってデータベースにたくさんのデータをロードしています。私が挿入するとき、私は重複をチェックしたい。NHibernate Criteriaはキャッシュから引き出すことができます
セッションをフラッシングすることなく、各ループでsaveorupdateを呼び出します。
このセッションに、フラッシュせずに重複があるかどうかを問い合わせる方法はありますか?
NHibernateを使ってデータベースにたくさんのデータをロードしています。私が挿入するとき、私は重複をチェックしたい。NHibernate Criteriaはキャッシュから引き出すことができます
セッションをフラッシングすることなく、各ループでsaveorupdateを呼び出します。
このセッションに、フラッシュせずに重複があるかどうかを問い合わせる方法はありますか?
nhaibernateとSpring.NETを統合して、Spring.NETがDAOサポートを作成してセッションを処理できるようにする必要があります。うまくいけば、これは助けになるでしょう! http://www.springframework.net/docs/1.1-RC2/reference/html/dao.html
シグニチャ 公共オーバーライドブールその後のOnLoad(オブジェクト・エンティティ、オブジェクトID、オブジェクト[]状態、文字列[] propertyNames、ITYPE []タイプ)
を以下であなたのOnSave方法を与えるカスタムインターセプタを書き込むことができますこのメソッド内で、チェックロジックを重複させることができます。 (つまり、そのタイプに既に存在するすべてのIDの辞書を保持することによって)
また、ISaveEventListnerのカスタム実装で重複チェックコードを直接接続することもできます。 nhibernateの設定時にカスタムイベントリスナーを登録する必要があります。ここにrefのスニペットがあります
Configuration cfg = new Configuration();
ISaveEventListener[] stack = new ISaveEventListener[] { new MySaveListener(), new DefaultSaveEventListener() };
cfg.EventListeners.SaveEventListeners = stack;
私はこの問題を過ぎ去ったので、これが正しいかどうかを検証する方法はありません。誰かがそれを確認できるなら、私はその答えを受け入れるでしょう。 –