2012-01-14 1 views
0

"엔티티 기록"을 수행하기위한 해결책을 찾고 있습니다. 는 기본적으로 나는이 같은 도메인을했습니다 :NHibernate를 사용하여 새로운 엔티티를 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

짝수 리즈 너를 사용할 수 있습니다. 이를 사용하여로드에 대해 다른 동작을 얻고 저장/삭제/업데이트 할 수 있습니다.

Eventlisteners for data audit

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

그것은 가장 좋은 것입니다 루트 객체

Concurrency

Version

에 구현 버전 관리하게하려면
관련 문제