0

当我基于 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);
    }
4

1 回答 1

2

我相信它可以让您确保您引用的是数据库实体,而不仅仅是数据库中可能不存在的(该模型类的)实例。

于 2013-04-28T09:17:09.817 回答