【发布时间】:2011-01-04 04:37:54
【问题描述】:
首先我使用的是 .Net 3.5 SP1。我有几个相关的实体如下。
一个Engineer 有很多Appointments
一个Appointment 有很多Engineers
一个Timeslot 有很多Appointments
我在我的数据访问层中提供了撤消/放弃对实体所做的更改的功能。我这样做是通过调用...
ObjectContext.Refresh(RefreshMode.StoreWins, Entity entity);
这适用于实体本身和任何一对多关系,如Timeslot,但不会恢复对多对多关系的任何更改。
由于目前我的DiscardChanges() 函数位于基类中,我将如何解决对多对多关系的更改,最好是在通用庄园中?
【问题讨论】:
-
您是否尝试过使用集合而不是单个实体的刷新的重载?
-
这将撤消对实体对象集合的更改,但我需要做的是在我的多对多关系中恢复相关实体的原始集合。由于某种原因,刷新不这样做。
-
我也有同样的问题。在我看来,微软没有像 SaveChanges() 一样在 ObjectContext 中包含神奇的 Refresh(rm RefreshMode) 方法,这应该是相反的,比如所有被跟踪对象的 DiscardChanges。如果您在研究中有任何消息,请留言,同时您可能还想看看social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/…
标签: c# entity-framework .net-3.5 many-to-many objectcontext