У меня такая же или похожая проблема. Я хочу переопределить только функцию удаления, но в EF4 это невозможно без переопределения также функции вставки и обновления.
В моем случае мне нужно сделать это действие для удаления:
update table set deleted = 1 where id = @id
Я решил это следующим образом:
Перед вызовом метода context.SaveChanges(true)
я запускаю этот код
foreach (ObjectStateEntry entry in context.ObjectStateManager.GetObjectStateEntries(EntityState.Deleted))
{
entry.ChangeState(EntityState.Modified);
entry.Entity.GetType().GetProperty("deleted").SetValue(entry.Entity, true, null);
}
Я новичок в EF. Сейчас я только ищу, как решить некоторые проблемы с EF, которые мне нужно решить, прежде чем я начну разрабатывать приложения на основе EF.
Но теперь похоже, что это решение должно работать. Я надеюсь.