Linq to Entities:存储过程调用后结果集未更新

时间:2009-11-10 05:01:38

标签: stored-procedures linq-to-entities

在LINQ to Entities中,我将存储过程的结果集映射到实体。

在存储过程中,我执行一些更新语句并通过运行SELECT查询并将结果集映射到实体来返回结果集。

数据库行正确更新,但返回的实体未反映更改。而是返回更新前的数据?

有什么建议吗?

谢谢。 安倍

2 个答案:

答案 0 :(得分:2)

实际上,事实证明DataContext.Refresh方法解决了我的问题 http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.refresh.aspx

这是我的代码:

db.Refresh(System.Data.Objects.RefreshMode.StoreWins, affectedProjectTasks);

感谢Marc指出我正确的方向! 安倍

答案 1 :(得分:1)

有问题的实体是否已在上下文中缓存? (你们已经问过他们了吗?)

如果是这样,身份管理器将始终返回原始对象(而不是在同一上下文中创建具有相同标识的新对象)。因此,对于已经读取的数据(通过其他查询),仅考虑身份/主键字段。