2011-11-09 16 views
0

ASP.NET MVC 3アプリケーションで非常にきめ細かなセキュリティモジュールを実装しようとしています。私は、更新SQL文の列のリストには、ユーザーが変更する権利がある列のみが含まれると想像することができます。問題は、NHibernateのようなORMを使うつもりです。 NHibernateが、モデルのどのプロパティを更新の一部にするべきかを実行時に決定する方法を提供しているのだろうかと思います。または、POSTメソッドでデータベースからモデルを再度取得し、ユーザーが設定できるプロパティのみを設定し、最後にモデルを保存するという唯一の方法です。また、これは、細かいセキュリティの私の要件を処理する良い方法ですか?NHibernate - 実行時に特定された指定されたオブジェクトのプロパティのみを更新する

答えて

1

動的更新と動的挿入は十分ですか?

動的更新(オプション、デフォルトはfalse):実行時にUPDATE SQLを生成し、値が変更された列のみを含めるように指定します。

dynamic-insert(オプション、デフォルトはfalse):実行時にINSERT SQLを生成し、値がNULLではない列のみを含めるように指定します。

それ以外の場合は、イベントやインターセプタでは可能かもしれませんが、私は決してそれらを使用していないので正確にはわかりません。

+0

dynamic-update = trueを設定することで、実行時にどのフィールドがアップデートの一部になるかをどのように設定できるのか分かりません。あなたは少し説明してもらえますか? – enamrik

+0

@enamrik NHibernateは、ユーザが権利を持っているプロパティだけが変更されていることをアプリケーションが確認した場合、更新ステートメントのこれらのカラムを変更します。 – cremor

+0

ありがとう、私はそれを理解したが、質問を閉じる時間がなかった。あなたの助けをもう一度ありがとう。 – enamrik

関連する問題