我有一个ObjectDisplay
由两个相关表组成的视图: Object
和State
. State
表示 的状态,视图从每个Object
的最新状态中提取一些细节。State
Object
在显示此信息的页面上,用户可以输入一些评论,从而创建一个新的State
. 创建新的 后State
,我立即拉出Object
fromObjectDisplay
并将其发送回以放入局部视图并替换Object
页面上网格中的 。
// Add new State.
db.States.Add(new State()
{
ObjectId = objectId,
Comments = comments,
UserName = username
});
// Save the changes (executes all of the above).
db.SaveChanges();
// Return the new Object information.
return db.Objects.Single(c => c.ObjectId == objectId);
根据我的数据库跟踪,Single
调用发生在调用后大约 70 毫秒SaveChanges
,并且它发生在同一个 SPID 上。
现在解决问题: 数据库默认值 我看到RecordDate
in State
to GETUTCDATE()
- 我自己不提供日期。我看到的是Object
返回的有State
旧RecordDate
的State
和旧Comments
的新State
信息State
。Object
返回的有 oldState
的信息。当我刷新页面时,所有正确的信息都在那里,但在数据库/EF 的初始调用中返回了错误的信息。
所以..有什么问题?视图更新速度不够快吗?EF会发生什么事情吗?我真的不知道从哪里开始寻找。