2011-02-08 5 views
2

내 모든 개체는 다음과 같은 속성이 있습니다저장할 때 엔티티의 일부 필드를 제외 할 수 있습니까?

  • public 가상 날짜 시간 CreatedDate {얻을; set;}
  • public 가상 문자열 CreatedBy {get; 세트; }
  • public virtual DateTime UpdatedDate {get; 세트; }
  • public 가상 문자열 UpdatedBy {get; 세트; }

나는 삽입하기 전에 이러한 속성을 채울 수 있도록/내 개체를 업데이트하는의 EventListener (IPreUpdateEventListener, IPreInsertEventListener)을 구현했습니다.
뷰를 모든 필드 (ID, 버전)에 저장했기 때문에 저장하기 전에 엔터티를로드하지 않습니다. 내가 (내보기의) 숨겨진 필드에 넣지 않으려는 유일한 방법은 CreatedDateCreateBy입니다.
엔티티를 처음 만들 때이 필드를 한 번만 채우므로 엔티티를 업데이트 할 때 엔티티를 제외하는 방법이 있는지 궁금합니다. 감사합니다. .

+0

에 대한 유창함 NHibernate에 매핑 사용

Map(x => x.CreatedDate).Not.Update(); Map(x => x.CreateBy).Not.Update(); 

위해 당신은 새로운 데이터 또는 프레임 워크 업데이트에서 변경되지 않은 필드를 포함하지 똑똑 모든 필드에 힘 업데이트와 해당 필드를 변경하거나하지 않는 한 쿼리, 호출 프로파일 링을 시도하고 있는지 확인하십시오. –

+0

@K Ivanov - 맞지 않습니다. 기본적으로 Hibernate는 변경되지 않은 경우에도 업데이트 된 모든 매핑 된 속성을 포함합니다. 동적 업데이트를 사용하여이 동작을 제어 할 수 있습니다. –

답변

4

예 있습니다. XML 사용

<property name="CreatedDate" update="false" /> 
<property name="CreateBy" update="false" /> 
+0

바로 그게 내가 찾고있는 것입니다. 훌륭하게 작동합니다. 감사. – LeftyX

관련 문제