在LINQ to Entities中,我将存储过程的结果集映射到实体。Linq to Enities:存储过程调用后结果集未得到更新
在存储过程中,我执行一些更新语句并通过运行SELECT查询并将结果集映射到实体来返回结果集。
数据库行得到正确更新,但返回的实体未反映这些更改。相反,更新之前的数据正在返回?
有什么建议吗?
谢谢。 Abe
在LINQ to Entities中,我将存储过程的结果集映射到实体。Linq to Enities:存储过程调用后结果集未得到更新
在存储过程中,我执行一些更新语句并通过运行SELECT查询并将结果集映射到实体来返回结果集。
数据库行得到正确更新,但返回的实体未反映这些更改。相反,更新之前的数据正在返回?
有什么建议吗?
谢谢。 Abe
其实,原来的DataContext.Refresh方法在 http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.refresh.aspx
这里是我的代码解决我的问题:
db.Refresh(System.Data.Objects.RefreshMode.StoreWins, affectedProjectTasks);
感谢马克指着我正确的方向! Abe
上述实体是否已经缓存在上下文中? (即,您是否已经查询过它们?)
如果是这样,身份管理器将始终让您回到原始对象(而不是在同一上下文中创建具有相同身份的新对象)。因此,对于已经被其他查询读取的数据,只考虑身份/主键字段。
我相信如此。我查询一个对象,然后调用一个对该对象执行更新的存储过程。 有什么办法强制身份管理器在存储过程被调用后重新加载数据?基本上,我需要从存储过程返回的对象来反映更新。 谢谢! – Abe 2009-11-10 05:12:51
我不知道,对不起。 – 2009-11-10 05:15:03