Можно ли переопределить метод ObjectContext.SaveChanges в Entity Framework? - PullRequest
0 голосов
/ 12 мая 2011

Мне было интересно, можно ли переопределить метод ObjectContext.SaveChanges () и написать собственную логику sql для сохранения изменений, внесенных в объекты в контексте объекта, вместо того, чтобы полагаться на Entity Framework для сохранения этих изменений в базе данных .

Ответы [ 3 ]

2 голосов
/ 12 мая 2011

Как правило, вы можете делать все, что захотите, если переопределите SaveChanges и не наберете base.SaveChanges, но вы потеряете все, что EF для вас сделает.Это означает, что вам придется вручную просматривать метаданные и сопоставлять свои сущности с таблицами и столбцами SQL.Будет похоже на то, что вы напишите половину ОРМ сами.

Если вам просто нужна небольшая настраиваемая логика при сохранении сущности, вы можете сопоставить импортированную хранимую процедуру с операциями вставки, обновления и удаления в конструкторе сущностей.

1 голос
/ 12 мая 2011

В EF4 SaveChanges(SaveOptions) является виртуальным. Вы можете переопределить этот метод. MSDN

0 голосов
/ 12 мая 2011

@ Ладислав прав, что сохраненный процесс - это один из способов сделать это (+1).

Другой способ - написать поставщика оболочки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...