2012-01-14 144 views
0

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

回答

0
<version name="Version" column="Version" access="nosetter.camelcase-underscore" type="Int64"/> 

这将是最好的版本控制了根对象

Concurrency

Version

上实现