2011-12-26 63 views
1

我在我的應用程序下面的層我目前設計:保存映射後變爲NHibernate的對象圖從DTO到域對象

MSSQL < NHibernate的<庫< WCF <的Javascript

在它的託管網頁的負載(EditOrder.aspx?id = 104),JavaScript應用程序調用WCF服務來獲取訂單,它是一個ID。用戶可以使用UI修改訂單的屬性並添加/修改/刪除子OrderLines(訂單中包含OrderLines的集合)。

當用戶按下保存按鈕時,javascript應用程序將Order和OrderLine對象數組作爲JSON發佈到WCF服務。

該計劃是讓WCF服務使用AutoMapper在域對象和DTO之間進行映射。當WCF服務接收到瀏覽器發佈的DTO時,它將映射到相應的Order域對象,包括其子OrderLines。

接下來,它將被傳遞到存儲庫。

現在我的問題:當我要求它更新我的訂單時,是否可以讓NHibernate識別任何刪除/插入/修改的OrderLineItems?如果是這樣,那麼這個工作是什麼?

更新:這是什麼NHibernate的Merge()方法呢?

謝謝!

回答

0

編號 您將不得不規避的問題是您在訂單和訂單中參考的靜態數據。因此,如果您的訂單行引用了一些靜態產品數據,則必須通過組裝域名訂單來從dto構建新的訂單行。 Dto將成爲您外部世界的Web服務邊界,通常比您的業務領域模型更平坦。 dto的邊界通信是瀏覽器中的應用層或json。