c# - 使用自定义删除覆盖 EntityDataSource

标签 c# asp.net entity-framework-4 devexpress aspxgridview

我有一个 ASP .net C# 项目,它使用 EntityDataSource 和 DevExpress aspxGridView,它运行良好,允许我选择、更新、插入和删除。但是我想使用自定义删除方法,它基本上只是进行更新(只是将事件标志设置为 false)而不是真正的删除。

我觉得我需要使用实体数据源或网格的 onrowdeleting 事件,但这是我使用 Entity Framework 4.0 的第一个项目,所以我还在摸索。我不知道是否需要在 edmx 代码隐藏文件中创建覆盖更新方法。

非常感谢任何帮助。

最佳答案

您可以在 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/

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

关于c# - 使用自定义删除覆盖 EntityDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276517/

相关文章:

c# - SOAP header : why authenticate in the header and not the body?

c# - .NET 中的 float 范围?

c# - 如何更新动态生成的 asp :image in an UpdatePanel without flickering?

javascript - 为什么这在 ASP.NET 中不起作用?

c# - CLR 类型到 EDM 类型的映射对于 EF 6 和 5 不明确?

c# - 如何将 "|"字符设置为文本框的最后一个位置?

c# - 如何从 Gridview 导出到 Excel

asp.net - 当 `HttpGet` 处理 `Create` 操作方法仅返回 `View()` 时,为什么浏览器上没有触发 JavaScript 验证?

c# - 简化此属性以在谓词中使用

c#-4.0 - 获取实体对象的属性名称,不包括entitycollection和entityreference