EntityDataSource覆盖自定义删除

Was*_*urn 3 c# asp.net devexpress aspxgridview entity-framework-4

我有一个使用带有DevExpress aspxGridView的EntityDataSource的ASP .net C#项目,它非常有用,可以让我选择,更新,插入和删除.但是我想使用自定义删除方法,而不是基本上只进行更新(只是将活动标志设置为false)而不是真正的删除.

我有一种感觉,我需要使用entitydatasource或网格onrowdeleting事件,但这是我的第一个项目与Entity Framework 4.0所以仍然找到我的脚.我不知道是否需要在edmx代码后台文件中创建覆盖更新方法.

非常感谢任何帮助.

Rob*_*oBr 6

您可以在SavingChanges事件上注册处理程序以执行您想要的wat.这样的事情:

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.
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

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/

我更喜欢第二种选择......