我想了解一個好設計的項目的概念。圖層ASP.NET MVC項目
我正在使用ASP.NET MVC,我正在嘗試創建一個分層(可插入)項目。
目前的項目結構是什麼,我現在是這樣的:
LayeredProject
- 包含MVC項目控制器LayeredProject.EntityFramework
- 包含用於數據庫中的所有POCO類。 (我使用Code First方法)LayeredProject.Model
- 這應該包含項目中使用的所有業務對象。
說,該項目是一個電子商務網站,我想構建這樣的:
在
LayeredProject.EntityFramework
項目我有類對應於數據庫表。類別,產品,用戶。該項目僅用於保存和加載數據庫中的數據,並且這些對象不應用於其他用途。該項目參考LayeredProject.Model
項目。在
LayeredProject.Model
項目我存儲了所有我使用的對象,其中大多數都是LayeredProject.EntityFramework
POCO的objsects和其他一些使用的服務類的副本。在
LayeredProject
我保留所有ViewModels類,控制器和不同的UI邏輯。該項目參考LayeredProject.Model
項目。
首先,我不確定這是否是正確的方法。
而且,這是正確的做法,然後我有點困惑,因爲我將在EntityFramework
項目和Model
項目中複製我的POCO類。
請幫我理解這個
我沒有看到在Model項目中創建EF對象克隆的理由。您可以將邏輯添加到EF類。如果你希望這些對象保持清潔,只需在代碼中進行映射而不是使用屬性。 –
好吧,如果我可以將邏輯添加到EF類,並且我直接與它們一起工作,那麼他們應該進入Model項目,對吧?此外,我認爲POCO類應該是空的,沒有方法和接口繼承,但我認爲我錯了。然而,EF支持我的POCO對象,但是如果我想切換到不同的ADO,比如Linq到Sql,那麼我將不得不將linq映射到我的POCO類的sql類,對吧? – Catalin