2012-01-30 67 views
2

如何在多個區域組織模型?我正在嘗試使用區域來組織代碼。我正在使用visual studio 2010 express,該項目位於asp.net mvc3代碼優先開發被使用。互聯網上的所有教程和參考文獻僅討論控制器和路線,但模型又如何?更確切地說,我尋找身邊的建議:模型在asp.net mvc 3個區域

  1. 在一個區域將包含它自己的類模型文件夾,所以這裏 應的DbContext放在哪裏?我已經有一個dbcontext類 ,其中包含「根」模型文件夾中的多個dbset條目。我可以 有多個dbcontext存儲其數據在同一個數據庫?
  2. 我已經通過了asp.net mvc portable area項目,通過 mvccontrib,但是它仍然在asp.net mvc2中,但是是否只有這樣才能在asp.net mvc 3中構建插件/組件?
  3. 除了區域/便攜式區域,有沒有更好的方法來組織 代碼是這樣的一種方式,可以簡單地「插入」新的功能, 沒有做太多的現有代碼的變化?區域看起來 承諾,但我無法弄清楚應該如何放置模型 。
  4. 區域僅適用於控制器和視圖分離嗎?

回答

0
  1. 的的DbContext會在數據訪問層或數據訪問的文件夾來管理所有的數據訪問文件。您將在您想要使用它們的模型中引用這些類。 是的!您可以有多個dbcontext將其數據存儲在同一個數據庫中。

  2. 沒有想法。

  3. 我或我的團隊所做的最好的方式是將視圖/模型/控制器完全分開。這樣,如果一個人 專用於視圖或如何顯示視圖,則其他人可以爲其編寫控制器動作 。

  4. 我們不使用領域,因爲當你的應用程序往往規模的指數的方式,您可能將失去的是什麼地方舉行?我的 口頭禪:4個文件夾:View/Model/ViewModel/Controller。

任何其他人可能有不同的看法...

+0

「你可以有多個dbcontext存儲其數據在同一個數據庫」如何?是通過使用他們的construtor爲每個dbcontext類顯式提供數據連接字符串嗎?它不會衝突EDM元數據? – 2012-01-30 23:48:17

0

我一直在尋找到可能的方式來實現的DbContext的模型級別分離,到目前爲止我發現的是,有沒有直接的方法使用Code-First將多個dbcontext存儲在同一個數據庫中。只有Model-First設計纔有可能。使用代碼優先的多個dbinitializers不起作用,因爲所有嘗試初始化數據庫,只有第一個將成功。 但是,通過在orchard CMS和一些其他開源項目中使用DbModelBuilder動態創建數據庫,可能會有一些解決方法。有人試過嗎?請分享 ...

0
  1. 區域僅適用於視圖模型分離。

區域的註冊碼很好地暗示了哪些區域用於區分路徑和訪問特定的控制器。 (認爲​​邏輯用戶界面單元)。爲了組織你的代碼,命名空間是選擇的工具。

也許看看像Umbraco,Orchard甚至N2CMS,看看他們如何管理擴展。