当我基于VS2012单页MVC Web应用程序生成项目时,基础项目包含大量对DbEntity的引用。为什么使用实体框架的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);
}
看起来像新手冗余或模式有人偏执分离实体将采取普遍。 – millimoose 2013-04-28 09:25:55
谢谢毫毛。是的,一个独立的实体更有意义。在这个示例中不可能发生,但是我可以看到,如果我正在忙于控制实现原始实体而不是DTO或ViewModel的控制器操作,那么这会比没有实体的实体更容易潜入我的身体。 :)(阅读为:“如果我是一个懒鬼,我可以看到这会是一个问题”) – shannon 2013-04-28 09:37:13