C# 在EntityFramework中,如何在多对多关系中重新加载实体?

C# 在EntityFramework中,如何在多对多关系中重新加载实体?,c#,entity-framework,.net-3.5,many-to-many,objectcontext,C#,Entity Framework,.net 3.5,Many To Many,Objectcontext,首先,我使用的是.NET3.5SP1。我有以下几个相关实体。 工程师有许多约会 一次约会有许多工程师 一个时隙有许多约会 我在数据访问层中提供了撤消/放弃对实体所做更改的功能。我是通过打电话给 ObjectContext.Refresh(RefreshMode.StoreWins, Entity entity); 这适用于实体本身和任何1对多关系,如时隙,但不会恢复对多对多关系的任何更改 如果当前我的DiscardChanges()函数位于基类中,我将如何将更改还原为多对多关系(最好是在泛型庄

首先,我使用的是.NET3.5SP1。我有以下几个相关实体。
工程师
有许多约会
一次
约会
有许多
工程师

一个
时隙
有许多
约会

我在数据访问层中提供了撤消/放弃对实体所做更改的功能。我是通过打电话给

ObjectContext.Refresh(RefreshMode.StoreWins, Entity entity);
这适用于实体本身和任何1对多关系,如
时隙
,但不会恢复对多对多关系的任何更改


如果当前我的
DiscardChanges()
函数位于基类中,我将如何将更改还原为多对多关系(最好是在泛型庄园中)?

这有点复杂,但这对我刷新M2M关系起到了作用:

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

您是否尝试过刷新重载,它使用集合而不是单个实体?这将撤消对实体对象集合的更改,但我需要做的是恢复多对多关系中相关实体的原始集合。由于某些原因刷新不能做到这一点。我也有同样的问题。在我看来,微软没有像SaveChanges()那样在ObjectContext中包含magic Refresh(rm RefreshMode)方法,这是一件很遗憾的事情,应该是相反的,比如放弃所有跟踪对象的更改。如果你在研究中有任何消息,请随时联系,同时你可能也想看看M2M?男女关系中的O.O?(O.O)