C# 在更新数据之前检查值

C# 在更新数据之前检查值,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我正在用Entity Framework编写一个ASP.NET web应用程序,我想知道在使用新值更新实体之前检查实体值的正确方法是什么——在本例中,检查请求更新的用户是否与实体关联 public IHttpActionResult PutUserRatings(int id, UserRatings userRatings) { var um = new UserManager(db); //Does this part get the entity already in th

我正在用Entity Framework编写一个ASP.NET web应用程序,我想知道在使用新值更新实体之前检查实体值的正确方法是什么——在本例中,检查请求更新的用户是否与实体关联

public IHttpActionResult PutUserRatings(int id, UserRatings userRatings)
{
    var um = new UserManager(db);
    //Does this part get the entity already in the database, or does it point to the new data? 
    if (db.Entry(userRatings).Entity.UserId != um.User.Id)
    {
        return StatusCode(HttpStatusCode.Forbidden);
    }
    db.Entry(userRatings).State = EntityState.Modified;
    db.SaveChanges();
}
简言之,问题是上述代码是否按预期工作,如果不是,我是否应该使用
db.UserRatings.Find(id)
请求原始实体


编辑:这个问题是由于文档的模糊性,以及我没有准备好验证我的想法的数据库的事实。

我认为您不清楚代码的工作方式。您能详细说明一下吗?我想检查我正在更新的条目的用户ID,看看它是否与登录的用户匹配(以验证用户确实可以修改所述条目)。但要做到这一点,我显然想检查数据库中的用户ID,而不是在收到的新值中。我不确定
db.entry(userRatings)。Entity
是否返回旧值或新值或旧值。