これは簡単な質問でなければなりません。基準が与えられた場合、その基準を満たすエンティティを削除する方法は?どのように基準を使用してNHibernateオブジェクトを削除できますか?
根拠:
HQLとNH基準はNHibernateは、特定の構築物であり、そのようなものとして、それらは、サーバー側のDALの実装の詳細です。私は彼らがクライアント側に「漏れる」ことを望んでいません。したがって、クライアント側では、処理するサーバーにLINQ式を提供します。今まで、NHibernateへの選択要求とLINQの要求は、それらをうまく処理しました。
ただし、今すぐバッチ削除操作を実装する必要があります。通常通り、クライアント側はLINQ式を提供し、サーバーは式を満たすエンティティを削除します。 残念ながら、NHibernateへのLINQはここでは役に立たない。できるだけ多くは、与えられたLINQ式をNHibernateの基準に変換することです。
とにかく、これは物語です。私はクライアント側がNHibernateをまったく知らないことを強調したいと思います。私はこれをそのままにしておきたいと思います。
P.S.私はあなたのリポジトリ/ DAO/PersistenceManagerのでは
大量のオブジェクトを扱う場合、データベースからすべてのエンティティをフェッチしてから削除する必要があるため、この方法は嫌いです。 –
これは本当です.HQLを使用して 'DELETE FROM WHERE' SQL文を発行する必要はありませんか? – DanB
みんな、あなたは深刻ではない。より良い方法が必要です! – mark