2009-12-11 14 views
0

我正在尋找有關超越裝配體邊界的傳遞實體的最佳做法的意見。我正在使用Linq-To-SQL,但同樣的問題將適用於實體框架,NHibernate等。公開大會以外的實體

我有一個程序集,我想在多個項目中重複使用。其中有幾個我迄今保持內部的實體,但是我發現將實體列表返回給調用者是有益的。我應該創建一個新的類來封裝數據,還是應該公開自己的實體?

例如,假設我有一個Address實體。最好有一個方法GetAddress(...)返回Address實體,還是應該創建另一個具有相同屬性的類來公開Address數據?

謝謝!

回答

0

剛剛公開實體的一票。在實踐中,隱藏DTO背後實體的原因最終並不真正具有相關性。舉例來說,你最後一次剔除內部數據訪問層的時間是否完全不同,這會導致你失去自動生成的實體類?

此外,您還可以通過避免僅暴露DTO時發生的痛苦地圖繪製練習節省時間。國際海事組織擁有一個使用反射或自動映射工具的東西不算沒有痛苦,因爲現在你付出的是性能,否則你就會付出沉重的代價。

0

您可能想考慮使用存儲庫將實體公開到外部程序集。 Here是一個很好的CodeProject文章,可以與EF一起使用。

+0

是存儲庫非常酷。我喜歡這個實現。不幸的是我沒有提供足夠的時間去做一些奢侈的事情。但是,通過使用存儲庫,您基本上允許通過存儲庫訪問實體本身,而不是某種DTO。 – mikesigs 2009-12-11 16:46:01

相關問題