Remove () из коллекции не помечает объект как удаленный - EF4 - PullRequest
4 голосов
/ 29 октября 2010

Я использую сгенерированные POCO классы - каким-либо образом я могу настроить шаблон так, чтобы при удалении из дочерней коллекции удаленный элемент также удалялся из БД?

Или, может быть, в частичном классе я могу что-то переопределить, поймать событие ..?

В основном я хочу, чтобы Order.OrderDetails.Remove (orderDetail) удалил orderDetail из БД.

Я не хочу получить доступ к контексту и сделать context.OrderDetails.Delete (orderDetail).

1 Ответ

1 голос
/ 20 декабря 2012

При удалении объекта из свойства навигации по коллекции Entity Framework удаляет связь между объектами (обнуляя свойство дочернего объекта, которое ссылается на его родителя).

Если вы хотите удалить запись, вам нужно пометить объект как State = EntityState.Deleted.Вы можете сделать это, получив доступ к контексту, или, если вы не хотите, обходным путем было бы определить дочерние объекты, которые были осиротевшими в ChangeTracker, и установить для них состояние «Удалено».

...