ADO.NET Entity Framework的实体侦听器

时间:2010-11-20 17:54:50

标签: .net entity-framework

ADO.NET Entity Framework的实体侦听器是否有“after-save”或“before-delete”?如果不是,我怎么能实现它们?

2 个答案:

答案 0 :(得分:1)

这些事件可在上下文中找到。

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

更新19/12/18

好的,wayback machine协助我提醒我现在可以找到的原始内容here。虽然这是更新的内容,但它仍然与原始问题相关。

答案 1 :(得分:1)

要添加对保存之后,删除之前等事件的支持,有几个选项。

对实体值的更改 如果要处理特定实体中值的更改,请创建一个扩展实体的新类并扩展OnXXXChanged函数,其中XXX是您要监视的属性。

public partial class MyEntity
{
    //Before value changes
    partial void OnMyPropertyChanging(int value)
    {
        //Your code here
    }

    //After value changes
    partial void OnMyPropertyChanged()
    {
        //Your code here
    }
}

实体保存之前(已添加/已编辑/已删除实体)

public partial class MyContext
{
    partial void OnContextCreated()
    {
        this.SavingChanges += new EventHandler(OnSavingChanges);
    }

    private void OnSavingChanges(object sender, EventArgs args)
    {
        //use ObjectStateManager for entity states
    }
}