这是方案,我有一个网站,在一个HTTP请求(HTTP POST)中,我需要执行以下操作:
在幕后,2)涉及影响“标签”数据的数据库端触发器。
所以当我做3)时,EF正在从步骤1)中拉出对象的相同副本,因为它在图形/内部存储器中(例如,相同的连接/上下文)
我需要一个“新鲜”的对象副本。
过去,我使用Detach
,然后执行EF查询,并从数据库中获取最新的对象。
但我本身无法访问该对象(我有一个DTO,它从我的存储库返回),所以我没有任何东西要传递给Detach
方法。 / p>
有什么方法可以说:
var fresh = db.Tags.Find(1, ignoreGraph: true)
还是有另一种选择吗?
如上所述,我在实体框架4.1,C#4(和ASP.NET MVC 3)
我现在能看到的唯一解决方案是将查询字符串参数传递给下一页,然后抓取新副本(因为它是新的上下文,新图等)。
答案 0 :(得分:13)
找到我的答案,我想:
Context.Entry<T>(entity).Reload()
现在尝试......