2011-08-08 94 views
1

我目前正在使用一個輕量級DataAccessLayer的項目。該項目由一個業務層,一個數據訪問層和一個保存DTO的項目組成。此設置已修復,我無法更改。我也不能使用完全成熟的ORM,比如Nhibernate或Entity Framework。對象/數據庫映射屬於哪裏?

好吧,要正確地使用這個設置,我們需要以某種方式將我們的DTO的屬性映射到數據庫的字段。目前我們正在數據訪問層中完成這項工作(每個實體/ DTO「擁有」一個數據訪問層類)。 這發生在兩個方法MapTo和MapFrom中:第一個將對象的字段映射到表的字段,另一個則相反。

現在我想知道數據訪問層是否是定義此映射的正確位置。在DTO中定義映射不是更好嗎?例如具有屬性? 或者更好的更通用的方法,而不是每個類的基本只是將屬性映射到表字段的方法。

+0

看看Automapper? – automagic

回答

0

你是指DTO的域模型,對不對?通常,實體和表之間的映射屬於數據訪問層。但我不會把映射放入域模型項目中。在這種情況下,例如,當您的數據庫表發生更改時,您必須更改/編譯域模型以及DAL。在其他示例中,如果您在DAL中具有映射,那麼當您切換數據庫或ORM方法時,只需更改DAL即可實現該功能。