这是场景,我有一个网站,在单个HTTP请求(HTTP POST)中,我需要执行以下操作:
>抓住一个物体(让我们说“标签”)
>保存一些其他对象(让我们说“问题”)
>获取“标签”的新副本.
>重定向到另一个页面,需要一个新的“标签”副本.
因此,当我做3)时,EF从步骤1)拉出对象的相同副本,因为它在图形/内部存储器中(例如相同的连接/上下文)
我需要一个“新鲜”的对象副本.
在过去,我使用了Detach,然后执行EF查询和从DB获取的最新对象.
但我本身无法访问该对象(我有一个DTO,它从我的存储库返回),所以我没有任何东西可以传递给Detach方法.
有什么方法可以说:
var fresh = db.Tags.Find(1,ignoreGraph: true)
或者还有另一种选择吗?
如上所述,我在实体框架4.1,C#4(和ASP.NET MVC 3)
解决方法
找到我的答案,我想:
Context.Entry<T>(entity).Reload()
现在尝试……