Прежде всего, поясню несколько слов: когда я использую слово " пользователь ", вы должны понимать " пользователь приложения " и " пациент *" 1006 * "это" элемент "из слоя модели.
Давайте теперь объясним контекст:
Клиентское приложение имеет кнопки « get терпеливый » и « update », текстовое поле « имя пациента » и сетку для отобразить возвращенного пациента после нажатия на кнопку « Получить пациента ».
На стороне сервера у меня есть метод WCF GetPatient (имя строки), который ищет исправленного пациента и выполняет некоторую бизнес-логику для PatientEntity , используемого с nHibernate. Этот метод возвращает PatientDto (отображение из PatientEntity ). И у меня есть метод Update (PatientDto пациент) метод для обновления измененного пациента.
Пользователь может изменить возвращенное значение PatientDto и нажать кнопку « Update ».
Пока у меня есть две идеи для управления " сеансом " через этот senario:
Первая идея: я предоставляю свойство " ID " в моем DTO , поэтому, когда пользователь нажимает кнопку обновления, я выполняю поиск на стороне сервера "* 1055" * пациент"с указанным идентификатором, используя nHibernate's" GetByID ()", я обновляю результат с помощью данных из PatientDto и вызываю nHibernate" Update ()"метод.
Вторая идея: я вручную создаю на стороне сервера класс CustomSession (я использую это имя для ясности), который инкапсулирует ISession и предоставляет уникальный идентификатор сеанса, который будет путешествие между клиентом и сервером. Итак, когда клиент отправляет на сервер PatientDto и уникальный идентификатор сеанса, я могу получить CutsomSession и обновить пациента с помощью Update () методов ISession
Мне не нравятся эти идеи. Потому что первое - это много накладных расходов, и оно не использует функции nHibernate. И вторая идея требует, чтобы разработчик сам управлял идентификатором CustomSession между вызовами: он подвержен ошибкам.
Кроме того, я уверен, что nHibernate предоставляет такой механизм, хотя я гуглил и ничего не нашел по этому поводу.
Тогда мои вопросы:
- Какой механизм (шаблон) я должен использовать? Конечно, механизм должен поддерживать граф объектов, а не одну сущность! "
- Предоставляет ли nHibenrate такой механизм? *
Заранее спасибо за помощь,