I have a view `ObjectDisplay` that is composed of two relevant tables: `Object` and `State`. `State` represents the state of an `Object`, and the view pulls some of the details from the most recent `State` for each `Object`.

On the page that is displaying this information, a user can enter some comments, which creates a new `State`. After creating the new `State`, I immediately pull the `Object` from `ObjectDisplay` and send it back to be dropped into a partial view and replace the `Object` in the grid on the page.

```
// 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);

```

According to my db trace, the `Single` call occurs about 70 ms after the `SaveChanges` call, and it occurs on the same SPID.

Now for the issue: ~~The database defaults the value of `RecordDate` in `State` to `GETUTCDATE()` - I don't provide the date myself. What I'm seeing is that the `Object` returned has the `State`'s `RecordDate` of the old `State` and the `Comments` of the new `State` information of the old `State`.~~ I am seeing that the `Object` returned has the old `State`'s information. When I refresh the page, all the correct information is there, but the wrong information is returned in the initial call from the database/EF.

So.. what could be wrong? Could the view not be updating quickly enough? Could something be going on with EF? I don't really know where to start looking.