我正在寻找解决方案以执行一些“实体历史”。 基本上我有一个域这样的:版本控制实体插入新版本使用NHibernate版本
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拦截器?