在LINQ to Entities中,我将存储过程的结果集映射到实体。
在存储过程中,我执行一些更新语句并通过运行SELECT查询并将结果集映射到实体来返回结果集。
数据库行正确更新,但返回的实体未反映更改。而是返回更新前的数据?
有什么建议吗?
谢谢。 安倍
答案 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)
有问题的实体是否已在上下文中缓存? (你们已经问过他们了吗?)
如果是这样,身份管理器将始终返回原始对象(而不是在同一上下文中创建具有相同标识的新对象)。因此,对于已经读取的数据(通过其他查询),仅考虑身份/主键字段。