Asp.net mvc 3 拦截MVC 3中的context.SaveChanges(),以便我可以修改并使用自定义sql查询

Asp.net mvc 3 拦截MVC 3中的context.SaveChanges(),以便我可以修改并使用自定义sql查询,asp.net-mvc-3,entity-framework-4,ef-code-first,Asp.net Mvc 3,Entity Framework 4,Ef Code First,我正在从事一个MVC3项目,其模型是使用代码优先的方法设计的。我将EF4用于ORM,我需要两件事- 1.截取context.SaveChages方法 2.仅对一种特定实体类型执行我自己的自定义更新查询 我通过重写SaveChanges()方法使第一部分正常工作,如- public override int SaveChanges() { var modifiedItems = this.ChangeTracker.Entries().Where(e => e.Stat

我正在从事一个MVC3项目,其模型是使用代码优先的方法设计的。我将EF4用于ORM,我需要两件事- 1.截取context.SaveChages方法 2.仅对一种特定实体类型执行我自己的自定义更新查询

我通过重写SaveChanges()方法使第一部分正常工作,如-

    public  override  int SaveChanges()
    { 
var modifiedItems = this.ChangeTracker.Entries().Where(e => e.State == System.Data.EntityState.Modified && e.Entity is myEntityName);
        foreach (var item in modifiedItems)
        {
           //ToDo: Write UPDATE Sql Query here
        }

        return base.SaveChanges();
}
如何编写更新查询?
谢谢

这是不可能的。您只能用来代替EF生成的CUD操作(仅适用于EDMX),但每个操作和实体实例都有一个存储过程调用。

您希望如何编写更新查询?作为SQL?使用不同的ORM?无论如何,请确保在保存更改之前从上下文中清除的已修改项,否则上下文将覆盖您所做的任何操作。