문제

나는 s#arparchitecture (asp.net mvc 및 fluent nhibernate)를 사용하고 있습니다. 다음과 같이 엔티티가 있습니다.

public class User : Entity
{
    public User(){}
    public User(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }

    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual DateTime? LastUpdate{ get; set; }
}

이 사용자 객체를 유지할 저장소 클래스에서 SaveorupDate 메소드를 호출합니다. 효과가있다. 최신 날짜와 시간으로 Lastupdate 속성을 자동으로 어떻게 유지합니까? 나는 항상 마지막 날짜 및 시간에 최후의 속성을 설정함으로써 저장소에서 SaveorupDate 메소드를 무시할 수 있지만, 내 엔티티에 아무런 변화가 없으면 nhibernate가 내 객체를 DB 와이 속성의 설정을 강요하면 항상 지속됩니다.

내 엔티티에서 다른 것이 바뀌면이 Lastupdate 속성 세트 만 원합니다.

도움이 되었습니까?

해결책 3

할거다 다른 stackoverflow 질문을 가리 키십시오 내 질문에 대답한다고 생각합니다.

다른 팁

당신은 an을 사용해야합니다 NHibernate 인터셉터 이것을 달성하기 위해. 인터셉터 구현에서 Onflushdirty를 재정의하여 무언가가 변경된 경우에만 Lastupdate 속성을 설정하십시오 (즉, 객체가 더럽습니다).

데이터베이스 유형을 지정하지 않았으므로 MySQL / Mariadb를 사용하는 사람들을위한 자유를 가져 와서 다음을 추가합니다.

유창한 매핑 클래스에서 다음을 사용할 수 있습니다.

Map(y => y.LastUpdate).CustomSqlType("timestamp").Generated.Always();

이렇게하면 기본값이 current_timestamp의 MySQL 타임 스탬프 열을 만듭니다. 따라서 nhibernate가 엔티티를 플러시하기로 선택하면 MySQL이 열이 올바르게 업데이트되었는지 확인합니다.

타임 스탬프가 MSSQL의 다른 짐승이기 때문에 이것이 MSSQL과 잘 어울리지 않는다고 확신합니다.여기 그리고 여기)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top