从LINQ2SQL迁移到LINQ到实体

时间:2011-10-21 14:21:44

标签: c# entity-framework-4

我在POCO模式下使用EF 4.1。

LINQ2SQL在插入/更新/删除实体时调用的datacontext上生成部分方法。它们对以下情况很有帮助:

    partial void InsertCampaign( Campaign instance )
    {
        instance.CreatedAtUTC = instance.ModifiedAtUTC = DateTime.UtcNow;

        ExecuteDynamicInsert( instance );
    }

    partial void UpdateCampaign( Campaign instance )
    {
        instance.ModifiedAtUTC = DateTime.UtcNow;

        ExecuteDynamicUpdate( instance );
    }

所以,我的问题是 - 使用EF,你如何挂钩插入/更新/删除实体,以便你可以执行上述操作?我不希望每次创建/更新实体时都不必手动执行此操作。

谢谢

1 个答案:

答案 0 :(得分:1)

覆盖DbContext中的SaveChanges()方法并执行以下操作:

    public override int SaveChanges()
    {
        var modified = this.ChangeTracker.Entries().Where(e => e.State == System.Data.EntityState.Modified);
        // set whatever values you want on modified entities
        return base.SaveChanges();
    }