【发布时间】:2012-01-14 23:55:33
【问题描述】:
我正在寻找一种解决方案来执行一些“实体历史记录”。 基本上我有一个这样的域:
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 拦截器?
【问题讨论】:
标签: c# nhibernate