我對MVC架構完全陌生,對架構有一些懷疑,他們主要是由於沒有使用實體框架,而是我一直使用數據訪問和數據表和數據集來獲取數據應用程序。我想知道有關MVC模式的最佳做法,以防某人可以用某些鏈接或pdf(無實體框架)提供幫助。還有一件事我想知道,也就是說,我們從哪裏調用從數據庫中獲取數據的DAL方法?從模型類或控制器操作?未使用實體框架的MVC架構
回答
這是一個如何使用MVC實現數據訪問代碼的簡短演示。請注意,數據訪問通常發生在控制器動作,而不是模型上面有人指出:
[HttpPost]
public ActionResult Update(MyModel model){
//You call your data access code here and retrieve your entity
DataAccessObject dao = new DataAcessObject();
var entity = dao.Get(model.Id);
//Now that you have your entity, update its properties from the model that
//has been posted to this action
entity.Name = model.Name;
entity.Phone = model.Phone;
//Once your entity has been updated, pass it to the Update method of the DAO
dao.Update(entity);
}
有很多方法對皮膚這隻貓的事,但像上面應該給你的想法。除非你的應用程序很小,否則你應該考慮實現Repository模式來分離你的UI和數據層。
實際上,數據訪問應該發生在模型中,而不是控制器,這就是模型的全部要點 –
該模型的目的是表示業務領域(汽車,人員,訂單)中的某些內容。持久性不在模型的單一責任範圍之內。如果讓Visual Studio使用實體框架實體作爲其模型生成控制器,則會看到數據訪問函數駐留在「DbContext」中,而不是模型。 –
或者使用Dapper,這是一個非常輕量級的裸骨骼ORM。 –
MVC模式很好的做法: 瀏覽次數:應該是純HTML,沒有邏輯 控制器:這是HTTP處理程序,不應該包含業務邏輯,但僅表示邏輯(IF顯示等條件)。它不知道數據來自何處或數據是如何獲得的。它只知道Model對象 Model:表示數據及其訪問。模型應該訪問數據庫並獲取數據並填充控制器可以用來傳遞給View的對象。
EntityFramework:與MVC無關,因此當您在MVC項目中使用EntityFramework時,您可能看不到以下提及的良好實踐。
- 1. MVC插件架構和實體框架
- 2. Asp.net mvc,實體框架,Poco - 架構
- 3. 實體框架Vs的MVC
- 4. 實體框架的分層架構
- 5. 在實體框架中使用ASP.NET MVC
- 6. linq在mvc中使用實體框架
- 7. MVC 4使用實體框架報告
- 8. 實體框架和asp.net mvc
- 9. 實體框架與ASP.NET MVC
- 10. ASP.NET MVC實體框架ObjectContext
- 11. ASP.NET MVC與實體框架
- 12. 與MVC與實體框架
- 13. SQL,MVC,實體框架
- 14. MVC和實體框架
- 15. MVC實體框架註釋
- 16. MVC 4實體框架4 POCO:指定的架構是無效
- 17. 架構實體框架和WCF
- 18. 實體框架4網站架構
- 19. 實體框架庫模式架構
- 20. 實體框架和3層架構
- 21. 實體框架5與n層架構
- 22. 使用實體框架添加新的MVC 5控制器使用實體框架腳手架錯誤
- 23. 實體框架的使用
- 24. 實體框架未存在
- 25. 使用實體框架使
- 26. 實體框架+ Unity框架
- 27. 實體未能與實體框架
- 28. 當使用實體框架核而不是實體框架
- 29. 實體框架使用BeginTransaction()
- 30. 使用實體框架
MVC和實體框架是完全不相關的,如果你不想用,你不需要使用EF。對於數據訪問,您可能對Repository模式感興趣,它提供了對您通常從MVC操作調用的數據訪問對象的抽象。 –
數據源訪問是從模型完成的,而不是控制器(通常是通過存儲庫模式)。 –
@ChrisHardie我還沒有使用任何存儲庫模式..我得到的是一個具有某些訪問數據源和返回數據集的方法的類。我相信我需要在相關操作中調用這些方法。我對於我認爲需要探索的存儲庫模式沒有任何瞭解。謝謝! –