Создание версий объекта путем вставки нового объекта в версию с использованием NHibernate - PullRequest
0 голосов
/ 15 января 2012

Я ищу решение для того, чтобы выполнить некоторую «Историю сущностей».В основном у меня есть домен, подобный этому:

public class Order
{
    public virtual int OrderId { get; set; }
    public virtual DateTime Date { get; set; }
    public virtual ICollection<OrderItem> Items { get; set; }

    public virtual int Version { get; set; }
}

public class OrderItem
{
    public virtual int OrderItemId { get; set; }
    public virtual Order Order { get; set; }
    public virtual Product Product { get; set; }
    public virtual int Quantity { get; set; }

    public virtual int Version { get; set; }
}

Мне нужно вести историю этих объектов, чтобы предотвратить обновления зависимых объектов, таких как изменения продукта (имена и т. Д.)

Поэтому я хочу создавать новую сущность при каждом сохранении / обновлении с обновленным номером версии.

Мой метод репозитория GetOrderById должен заботиться о версиях сущности и принимать последнюю версию или конкретную версию, если она указана.

Как я могу это сделать?Может быть, используя NHibernate Interceptors?

Ответы [ 2 ]

0 голосов
/ 19 января 2012
<version name="Version" column="Version" access="nosetter.camelcase-underscore" type="Int64"/>

Лучше всего было бы реализовать управление версиями для корневого объекта

параллелизм

Версия

0 голосов
/ 15 января 2012

Вы можете использовать четные прослушиватели.Вы можете использовать его для получения различного поведения при загрузке и сохранения / удаления / обновления.

Eventlisteners для аудита данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...