首先,對不起對於冗長的問題,但我不得不提供一些基礎信息。DTO模式+延遲加載+實體框架+ ASP.Net MVC +自動映射器
我們正在創造它採用ASP.net MVC,JQuery的模板,實體框架,WCF應用程序和我們使用POCO作爲我們領域層。在我們的應用程序中,有一個WCF服務層與ASP.net MVC應用程序交換數據,它使用從WCF到MVC的數據傳輸對象(DTO)。
此外,應用程序通過在我們的WCF服務層轉換域到的DTO時使用AutoMapper使用實體框架延遲加載。
我們的後端架構如下(WCF服務 - >管理 - >庫 - >實體框架(POCO))
在我們的應用中,我們不使用,因爲我們不希望再查看模型MVC應用程序的映射層,我們只使用DTO作爲視圖模型。
一般而言,我們針對域(例如Customer,CustomerLite等)使用普通和精簡DTO。(精簡版對象的屬性比普通少)。
現在我們有因爲我們的DTO結構日趨複雜,當我們認爲可維護性(DTO的與一般的層次結構),我們失去效能與DTO的一些困難。
例如,
我們有客戶視圖頁面和我們的DTO層次結構,如下
public class CustomerViewDetailsDTO
{
public CustomerLiteDto Customer{get;set;}
public OrderLiteDto Order{get;set;}
public AddressLiteDto Address{get;set;}
}
在這種情況下,我們不希望對這一觀點OrderLiteDto的一些領域。但是其他一些觀點需要這些領域,所以爲了促進它我們使用這個結構。
當涉及到自動映射,映射我們CustomerViewDetailsDTO,我們會得到更多的數據,從延遲加載(實體框架)(它不需要特定視圖)。
我的問題:
有沒有同時考慮可維護性,我們可以使用提高性能的任何機制?
對於同一個DTO,是否可以使用Automapper和更多基於地圖視圖的映射函數?
冗長?我希望每個問題都是這個簡短的:) –