2012-01-14 140 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

上實現