1

많은 이벤트가있는 속성 이벤트가있는 User 클래스가 있습니다. 기본적으로 사용자는 세션 시간이 많은 이벤트에 등록합니다.nhibernate (또는 최대 절전 모드) 조건부 계단식

사용자는 이벤트에 등록 할 수 있지만 세션 시간은 순전히 유익한 정보입니다.

그러나 NH을 사용하여 데이터베이스에 사용자를 기록하면 세션 시간도 업데이트됩니다. 이벤트를 만들거나 업데이트 할 때 세션 시간을 삽입하거나 업데이트해야 할 필요가 있음을 알면 어떻게 방지 할 수 있습니까?

+0

몇 가지 질문 : 사용자는 이벤트를 속성으로 갖고 있습니까? 사용자는 하나의 일정에 대해서만 등록 할 수 있습니까? 세션 - 사용자가 세션에 연결되었거나 이벤트에만 연결되어 있습니까? – bzarah

+0

사용자/이벤트/세션을 채우고 저장하기 위해 호출하는 코드와 엔티티를 매핑하는 코드를 표시하는 것이 매우 유용합니다. – bzarah

+0

사실 내가이 문제를 핵심으로 단순화했습니다. . 따라서이 예에서 thevuser는 하나의 이벤트 만 가질 수 있으며 세션이 아닌 이벤트에만 연관됩니다. –

답변

0

이것은 완전히 귀하의 질문에 적용되지 않을 수도 있지만 특정 비즈니스 규칙에 따라 조건부로 삭제를 연쇄 적으로 연결하려는 문제가있었습니다.

많은 시간 동안, 당신은 당신의 영속성 논리에서 이것을 처리 할 수 ​​있습니다. 나는 NHibernate Event Listeners와 함께 한 경우가 있었다.

public class ConditionalDeleter: IPostDeleteEventListener 
    { 
     public void OnPostDelete(PostDeleteEvent @event) 
     { 
      var foo = @event.Entity as Foo; 
      if (foo != null) 
      { 
       if (foo.ShouldDeleteBar) 
       { 
        ISession session = @event.Session.GetSession(EntityMode.Poco); 
        session.Delete(foo.Bar); 

        session.Flush(); 
       } 
      } 
     } 
    } 
+0

제안 해 주셔서 감사합니다. 조사 할 시간을 갖도록 노력할 것입니다. –