Я ищу решение для того, чтобы выполнить некоторую «Историю сущностей».В основном у меня есть домен, подобный этому:
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?