Если я правильно прочитал документацию, если у меня есть сущность Order, сопоставленная со столбцом версии (увеличенным на nhibernate), то изменения в строках заказа должны обновить номер версии для совокупного корня (Order).Это действительно происходит, когда я добавляю / удаляю строки заказа, но если я только изменяю, например, количество в строке заказа, то версия заказа не обновляется.Это ожидаемое поведение?
Я проверил источник NH, и кажется, что он проверяет только грязные коллекции, когда пытается определить, необходимо ли увеличение версии, и коллекция будет только грязной при добавлении / удалении элементов, а не если какой-либо элемент в коллекциигрязный.
У меня есть следующее отображение:
public class OrderMap : ClassMap<Order>
{
public OrderMap()
{
Id(c => c.Id).GeneratedBy.GuidComb();
Version(c => c.Version);
OptimisticLock.Version();
HasMany(x => x.OrderLines)
.Inverse()
.Cascade.AllDeleteOrphan();
}
}
public class OrderLineMap : ClassMap<OrderLine>
{
public OrderLineMap()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Quantity);
References(x => x.Order);
}
}
Итак, мой вопрос, является ли это ожидаемым поведением?То есть эта версия не будет обновляться при изменении дочерних сущностей, только когда дочерняя коллекция изменена с помощью команды remove / add.Это как бы нарушает модель параллельного использования совокупного корня.