当我基于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);
}
答案 0 :(得分:2)
我相信它可以确保您引用数据库实体,而不仅仅是一个可能没有数据库存在的实例(该模型类)。