2009-02-23 104 views
3

我有一個處理數據庫訪問的服務器和一個消耗信息的客戶端。從客戶端到服務器的通信是通過WCF服務。從WCF服務返回NHibernate映射類

當NHibernate POCO從服務中返回時,對象圖中的所有對象都被序列化了嗎?如果是這樣,有沒有辦法改變它?

我也想着不返回NHibernate POCO,而只返回一個只有基本信息的對象。

你在這些情況下做什麼?

回答

6

使用數據傳輸對象將數據從服務器移動到客戶端。您的業​​務(域模型)對象不一定會暴露在應用程序的核心之外,但應被視爲受保護的資產。

您可以使用AutoMapper自動執行從業務對象到數據傳輸對象的翻譯。

+0

我以前沒有聽說過這個。看起來正是我需要的。謝謝 – Megacan 2009-02-23 11:02:20

0

是的,你可能想要一個DTO。通常認爲不將數據對象傳遞給外部世界會更好,但是直接從服務中傳遞hibernate對象可能會給你一些奇怪的行爲,特別是當你有懶惰加載的集合時。