当我基于 VS2012 单页 MVC Web 应用程序生成项目时,基础项目包含大量对 DbEntity 的引用。
为什么:
db.Entry(todoList).Entity.UserId
而不仅仅是:
todoList.UserId
它在示例 ApiControllers 中重复使用此间接,但仅调用一次 DbEntityEntry 特定成员(State 属性)。我忽略了使用这个的一些重要原因吗?
编辑:这是一个更大的片段
// DELETE api/TodoList/5
[ValidateHttpAntiForgeryToken]
public HttpResponseMessage DeleteTodoList(int id) {
TodoList todoList = db.TodoLists.Find(id);
if (todoList == null) {
return Request.CreateResponse(HttpStatusCode.NotFound);
}
if (db.Entry(todoList).Entity.UserId != User.Identity.Name) {
// Trying to delete a record that does not belong to the user
return Request.CreateResponse(HttpStatusCode.Unauthorized);
}