从LINQ2SQL到LINQ再到实体

本文关键字:实体 LINQ LINQ2SQL | 更新日期: 2023-09-27 18:12:03

我在POCO模式下使用EF 4.1。

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

    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,您如何挂钩到实体的插入/更新/删除,以便您可以执行上述操作?我不希望每次创建/更新实体时都必须手动执行此操作。

谢谢

从LINQ2SQL到LINQ再到实体

在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();
    }