當我基於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