我正在尝试在ASP.Net MVC3和POCO类中使用。当涉及到的实体有一个涉及多到多个关系的DbUpdateConcurrencyException时,我目前正在考虑如何从一个NavigationProperty中恢复。
假设该实体名为Player,并具有一个名为Clubs的导航属性。一个球员可以成为许多俱乐部的成员,俱乐部也可以有很多成员。
因此,假设一个用户正在编辑(当然,这是一个web应用程序),他的俱乐部成员身份管理员取消了他的一些俱乐部成员资格。在调用SaveChanges()时,用户代码将正确抛出一个DbUpdateConcurrencyException。
我现在要做的是重新加载球员实体,包括他的俱乐部。用dbContext.Entry(player).Reload()重新加载球员是非常容易的,但是这并不能在管理员的干预下将俱乐部导航属性重新填充到他可用的俱乐部中。
请帮帮我!
发布于 2011-08-20 12:30:00
我以前也遇到过类似的问题,我为我的案例找到的最好/最简单的解决方案--考虑到EF如何决定缓存和重新加载实体--是创建一个全新的DbContext实例并使用该实例重新加载数据。
发布于 2012-01-29 19:16:34
这应该能行。
dbContext.Entry(player).Reference(a => a.Clubs).Load()https://stackoverflow.com/questions/7118236
复制相似问题