我正在使用Entity Framework编写ASP.NET Web应用程序,我想知道在使用新值更新实体的值之前检查实体值的正确方法是什么 - 在此case,检查请求更新的用户是否是与实体关联的用户。
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)
请求原始实体?
编辑:问题是由于文档含糊不清,以及我没有数据库可以验证我的想法。