Asp.net
MVC3 和實體框架
我的問題很簡單:將
.edmx文件放在 MVC3 項目的 Web 應用程序的模型文件夾中是一種好習慣嗎?
我的回答很簡單,不要用數據訪問邏輯和數據建模搞亂表示層(整個 MVC 應用程序)。
在您的 Visual Studio 解決方案中至少有 4 個項目,從下到上:
1 - ProjectName.Interfaces(類庫,實體的介面);
2 - ProjectName.DAL(類庫,唯一允許知道使用 EF 的庫,POCO 實體使用另一個文件實現項目 1 的介面,您使用部分類重新聲明相同的對象……);
3 - ProjectName.BL(類庫,業務邏輯,引用上面1和2的兩個項目);
4 - ProjectName.Web(ASP.NET MVC 應用程序,表示層,引用兩個項目 1 和 3,但不是 2);
這當然是為了簡化事情,根據我的經驗,這是一個可靠的設計,對於非常小的項目來說有點矯枉過正,但從長遠來看是有回報的。
在我看來,MVC 的 M,Model,不是數據模型,不是 EF,不是做 ORM 綁定到特定數據庫引擎的。
這個答案當然是主觀的,並且基於我的個人經驗;-)