Извините за заголовок - надеюсь, вопрос прояснит то, что я хочу знать, тогда, возможно, кто-то может предложить лучший заголовок, и я его отредактирую!
У нас есть модель предметной области. Частью этой модели является набор «Активов», которые в данный момент есть у пользователя. Затем пользователь может создать «Действия», которые являются возможными будущими изменениями состояния этих «Активов». В настоящее время эти действия имеют метод «Применить» и ссылку на связанный с ними «Актив». Этот метод «Применить» вносит изменения в «Актив» и возвращает его.
В различных точках кода мы должны получить список активов, к которым будут применены любые будущие действия. Однако нам часто нужно делать это в рамках транзакции NHibernate, и поэтому, когда транзакция будет зафиксирована, изменения в «Активе» также будут сохранены - но мы не хотим, чтобы они были.
Мы прошли через различные способы сделать это
Клонирование версии «Актива» (чтобы он был отключен от Nhibernate), а затем применение «Действия» и возврат этой клонированной копии.
На самом деле, используя Nhibernate для отключения объекта перед его возвратом
Очевидно, что у каждого из них есть (массивные!) Недостатки.
Есть идеи? Дайте мне знать, если этот вопрос требует дальнейших объяснений и что я должен изменить название на!