4
如果我有一个Order实体与版本列映射(由nhibernate递增),则正确读取文档,则对命令行的更改应更新聚合根(订单)的版本号, 。它确实在添加/删除订单行时执行此操作,但如果仅更改订单行上的数量,则不更新订单版本。这是预期的行为?版本在更新子项时不会增加
我检查了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修改子集合时修改子实体时,该版本才会更新。它有点破坏了聚合根并发模型。