2011-07-12 37 views
1

私はLinqからSQLへのAsp.Net Dynamic Dataを使用して、CRUDアクションのみを持つシンプルなサイトを作成しています。Asp.Net動的データの更新/ 1つのトランザクションで2つのテーブルを挿入

残念ながら、私はデータベーススキーマを変更することができず、正常に解決できない問題が発生しています。

このデータベースには、アクセス権に関連する追加のテーブルがあります。アクセスタイプには3行あり、アクセス権があるかどうかを示すビットフラグなどがあります。ユーザーID、アクセスタイプ、アクセス権があります。

ユーザの詳細&編集画面にチェックボックスが表示され、アクセス権を選択できるようになりました。

私が見ることができる最大の問題は、挿入/更新/削除アクションを実装して、両方のテーブルが1つのトランザクション内で変更されるようにすることです。

私が見ることのできる唯一の解決策は、挿入/更新/削除イベントをハイジャックして手動で行うことですが、その場合は、通常のAsp.Netウェブフォームを試すのではなく、動的データを使用する。

誰かが私がそれを行うことができる他の方法のアイデアはありますか?

答えて

0

これは不幸なデータベース設計です。あなたは正しいです、あなたはあなたのデータコンテキストのSubmitChanges()を傍受し、そこで特別な更新を行う必要があります。別のオプションは、 データベーストリガーを使用することです。

public override void SubmitChanges(System.Data.Linq.ConflictMode failureMode) 
{ 
    ChangeSet changeset = GetChangeSet(); 

    foreach (var u in changeset.Deletes.OfType<Users>()) 
    { 
     // do something to details 
    } 
} 
+0

私は実際にSubmitChangesのオーバーライドを検討していませんでしたが、この状況でこれを行う利点があります。 – Nathan

関連する問題