C# 在更新数据之前检查值
我正在用Entity Framework编写一个ASP.NET web应用程序,我想知道在使用新值更新实体之前检查实体值的正确方法是什么——在本例中,检查请求更新的用户是否与实体关联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
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
是否返回旧值或新值或旧值。