2010-01-12 3 views
4

Во-первых, я использую .Net 3.5 SP1. У меня есть несколько объектов, связанных следующим образом.
Engineer имеет много Appointments
Appointment имеет много Engineers
Timeslot имеет много Appointments
Я обеспечивающей функциональность в моем слое доступа к данным, чтобы отменить/отменить изменения, внесенные в сущность. Я делаю это по телефону ...В EntityFramework как вы перезагружаете объекты во многих отношениях?

ObjectContext.Refresh(RefreshMode.StoreWins, Entity entity); 

Это прекрасно работает для самого объекта и любого 1 на многих отношениях, как Timeslot, но не возвращает никаких изменений в многие ко многим отношений.

Как woolld Я общаюсь с изменением отношений между многими и многими из предпочтительных в общей усадьбе, поскольку в настоящее время моя функция DiscardChanges() находится в базовом классе?

+0

Вы пробовали перегрузку Refresh, которая принимает коллекцию вместо одного объекта? – pdiddy

+0

Это приведет к отмене изменений в коллекции объектов Entity, но мне нужно сделать восстановление исходной коллекции связанных объектов в моих отношениях многих и многих. По какой-то причине Refresh не делает этого. – TheDuke

+1

У меня тоже такая же проблема. По моему мнению, стыдно, что Microsoft не включила метод Magic Refresh (rm RefreshMode) в ObjectContext, как и SaveChanges(), должен быть чем-то противоположным, например DiscardChanges для ВСЕХ отслеживаемых объектов. Если у вас есть какие-либо новости в ваших исследованиях, пожалуйста, проговорите, между тем вы также можете взглянуть на http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/c12bd8c8-231f-4dcc- a665-b048f7debbd7/ – Shimmy

ответ

2

Это немного запутанным, но это работает для меня, чтобы обновить M2M отношений:

myengineer.Appointments.Clear(); 
context.AcceptAllChanges(); 
myengineer.Appointments.Load(); 
+0

M2M? O.o как в отношениях между мужчинами и мужчинами? (O.o) – VJPPaz