オーチャードの行を更新するにはどうすればよいですか?オーチャードで複数のデータベース行を更新する
私は顧客IDの配列を持っています。そして、これらのすべての顧客に対してIsActiveフィールドをNoに設定したいと思います。
私はContentManagerまたはIRepositoryを使用しますか?また、各行をループして更新する必要があるのですか、ある文ですべての行を更新する方法がありますか?
ありがとうございました。
オーチャードの行を更新するにはどうすればよいですか?オーチャードで複数のデータベース行を更新する
私は顧客IDの配列を持っています。そして、これらのすべての顧客に対してIsActiveフィールドをNoに設定したいと思います。
私はContentManagerまたはIRepositoryを使用しますか?また、各行をループして更新する必要があるのですか、ある文ですべての行を更新する方法がありますか?
ありがとうございました。
オーチャードは、それがより多くの情報を参照、たくさん速くなりますNHibernateは3.2以上にコアのアップグレードされた場合、それは、物事がより困難にhttp://fabiomaulo.blogspot.com/2011/03/nhibernate-32-batching-improvement.html
あなたがカスタムリポジトリでHQLを使用することができる更新ステートメントを実行したい場合は、NHibernateのSessionを返すリポジトリベースクラスの保護されたプロパティがあります。このNHibernateはセッションを使用すると、uはからCreateQueryを呼び出すことができます()
だけあなたのクラス名とpropertynamesはなく、テーブル名を使用することを忘れないでください
Query query = session.createQuery("update Customers set IsActive = :isActive" +
"where Id in (1,2,3,4,5,6,));
query.setParameter("isActive", "false");
int result = query.executeUpdate();
ContentPartに接続されていない独自のテーブルがある場合は、IRepository
に固執してください。 ContentManager
は、コンテンツアイテムを管理するためのものです。
オーチャードでの実装方法はIRepository
です。すべての顧客をループする必要があります。私は「バッチ更新」のためNHibernateのにHibernateクエリ言語(HQL)をお勧めしません