3

DevExpress aspxGridView で EntityDataSource を使用する ASP .net C# プロジェクトがあり、選択、更新、挿入、および削除できるようにうまく機能しています。ただし、実際の削除ではなく、基本的に代わりに更新を行うだけのカスタム削除メソッドを使用したいと思います (アクティブフラグを false に設定するだけです)。

entitydatasource または grids onrowdeleting イベントを使用する必要があると感じていますが、これは Entity Framework 4.0 を使用した最初のプロジェクトであるため、まだ足を踏み入れていません。edmx コード ビハインド ファイルでオーバーライド更新メソッドを作成する必要があるかどうかはわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

6

SavingChanges イベントにハンドラーを登録して、必要な処理を実行できます。このようなもの:

public partial class AWEntities{ 

partial void OnContextCreated()
{
    this.SavingChanges += new EventHandler(context_SavingChanges);// Register the handler for the SavingChanges event.
}

private static void context_SavingChanges(object sender, EventArgs e)// SavingChanges event handler.
{
    // Get all in Deleted state
    foreach (ObjectStateEntry entry in
        ((ObjectContext)sender).ObjectStateManager.GetObjectStateEntries(EntityState.Deleted))
    {
        if (entry.Entity.GetType() == typeof(MyType)))
        {
            // do what you want.
        }
    }
}
}

http://msdn.microsoft.com/en-us/library/cc716714.aspx

または、ストアド プロシージャをマップして、必要な方法で削除を実行できます。 http://learnentityframework.com/LearnEntityFramework/tutorials/using-stored-procedures-for-insert-update-amp-delete-in-an-entity-data-model/

私は2番目のオプションの方が好きです...

于 2010-11-25T12:04:17.573 に答える