Перехват context.SaveChanges () в MVC 3, чтобы я мог изменить и использовать вместо этого пользовательский запрос SQL - PullRequest
0 голосов
/ 18 августа 2011

Я работаю над проектом MVC3, модель которого разработана с использованием подхода Code First.Я использую 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();
}

Как мне написать свой запрос на обновление?Спасибо!

1 Ответ

0 голосов
/ 18 августа 2011

Это невозможно. Вы можете только отобразить пользовательские хранимые процедуры , которые будут использоваться вместо операций CUD (только с EDMX), сгенерированных EF, но при этом у вас будет один вызов хранимой процедуры для каждой операции и экземпляра объекта.

...