2014-03-04 55 views
0

我在應用程序中的對象的名稱有一些問題。例如,任何ORM(NHibernate或實體框架)生成的類都稱爲域對象?實體?模型對象?他們是DAO嗎?他們之間有什麼不同?ORM如何生成調用的類?

感謝

+0

請修改你的問題。現在還不清楚你究竟在問什麼。 – jsalonen

回答

1

代表你的數據庫表中的類被稱爲域,你通常會有一個領域類爲每個表(除了多對多的關係表)。

要將此域類映射到您的實際數據庫,當您聲明表以及每個域成員應映射到的不同數據庫字段時,您將(通常再次)爲每個域類具有一個映射類。

您現在有一個數據訪問層(DAL),用於選擇,更新,插入或刪除映射到數據庫的域類。

但是,如果您構建應用程序以使用您的DAL,那麼您肯定會使用DTO或模型。模型是要在應用程序中顯示的對象,通常與域不同。它可以是字段的格式,用於刪除純數據庫字段的數據子集,也可以是兩個不同域的合併。因此,您的應用程序將只能操作DTO(或模型),並且當應用程序創建/更新/刪除DTO時,您的服務器將管理DTO和域之間的轉換。

DATABASE < => MAPPING < => DOMAIN < => DTO

+0

嗨布魯諾,非常感謝您的解釋。我知道映射類(通常從ORM生成)是域類,不是嗎? – MrScf

+0

DAL是實現刪除的層或保存其中T是映射類,例如? – MrScf

+0

我喜歡讓我的域類和我的映射類分開,但不確定這是否是最佳實踐。 DAL層絕對是您實施刪除或保存的地方。我通常使用存儲庫模式來管理我的DAL:[鏈接](http://www.primaryobjects.com/CMS/Article119.aspx) –