2011-08-19 50 views
0

我有一個使用純DTO的WCF服務層。尋找一種模式來幫助將DTO映射到業務邏輯層中的EF4實體

在服務器端,我帶這些DTO並將它們傳遞給我的業務邏輯層,基本上是每個實體或實體組的一組「管理」類。

Manager類方法將DTO作爲參數,在每個方法的第一行中,我採用DTO並使用AutoMapper,將其映射到我的實體框架POCO。然後,我執行我的LinQ查詢或存儲庫方法(我使用EF 4.1中的DBContext),如果需要,將結果實體映射回DTO並將其返回給WCF服務方法。

幾乎管理器類中的每個方法都在執行映射和重新映射,這是大量的重複樣板代碼。我可以使用哪種模式來減少冗餘?

+0

請提供一些代碼示例 – hazzik

回答

0

我們將所有映射放在一個單獨的dll中。它使測試更容易,並且消除了重複代碼的需要。

您還可以進一步通過使用automapper減少代碼量,請參閱:http://automapper.codeplex.com/

0

你不需要模式 - 你只需要在輔助方法中包裝重複代碼並重用該方法。

0

如果你想使用實體框架在WCF架構。我認爲最好的選擇是POCO Self-Tracking實體,它是作爲Visual Studio Item Template提供的,可以從Designer中創建。

MSDN : Working with Self-Tracking Entities