Сохранение изменений в графе объектов в NHibernate после преобразования из DTO в объект домена - PullRequest
1 голос
/ 26 декабря 2011

В моем приложении есть следующие слои, которые я сейчас разрабатываю:

MSSQL

При загрузке веб-страницы своего хостинга (EditOrder.aspx?id = 104), приложение javascript вызывает службу WCF, чтобы получить Order по его идентификатору.Пользователь может использовать пользовательский интерфейс для изменения свойств Order и добавления / изменения / удаления дочерних OrderLines (заказ имеет коллекцию OrderLines).

Когда пользователь нажимает кнопку Save, приложение javascript отправляет Orderс и массив объектов OrderLine в виде JSON для службы WCF.

Планируется, чтобы служба WCF использовала AutoMapper для сопоставления между объектами домена и DTO.Когда DTO, опубликованный браузером, получен службой WCF, он будет сопоставлен с соответствующим объектом домена Order, включая его дочерние OrderLines.

Далее он будет передан в репозиторий.

Теперь мой вопрос: возможно ли позволить NHibernate позаботиться об идентификации любых удаленных / вставленных / измененных OrderLineItems, когда я прошу его обновить мой заказ?Если да, что нужно для того, чтобы это работало?

ОБНОВЛЕНИЕ: это то, что делает метод NHibernate Merge ()?

Спасибо!

1 Ответ

0 голосов
/ 27 декабря 2011

Нет. Проблема, которую вам придется обойти, - это статические данные, на которые вы ссылаетесь в своем заказе и в строках заказа. Итак, если ваша строка заказа ссылается на некоторые статические данные о продукте, вы должны создать новую строку заказа из dto, собрав строку заказа вашего домена. Dto будет границей вашего веб-сервиса с внешним миром, обычно более плоской моделью, чем модель вашего бизнес-домена. Граница, с которой связываются dto, это прикладной уровень или json в браузере.

...