문제

NHibernate 1.2에서 2.0으로 애플리케이션을 마이그레이션 할 때 어떤 종류의 고려 사항이 있습니까?주요 변경 사항과 권장 변경 사항은 무엇입니까?

매핑 문제가 있습니까?

도움이 되었습니까?

해결책

NHibernate 2.0의 주요 변경 사항

테스트 범위가 양호하면 바쁜 일입니다.

편집 : 오늘 아침에 업그레이드했습니다.전공은 없습니다.삭제 후 세션을 Flush ()해야합니다.Expression 네임 스페이스의 이름이 Criterion으로 변경되었습니다.이 모든 것은 위의 링크에서 다룹니다.매핑은 변경할 필요가 없습니다.꽤 투명합니다.아, 그리고 모든 곳에서 거래를하지만 이미 그렇게 하셨을 것입니다.

그런데 다음은 변경 사항에 대한 흥미로운 내용입니다. http://codebetter.com/blogs/patricksmacchia/archive/2008/08/26/nhibernate-2-0-changes-overview.aspx

다른 팁

여기에서 답을 찾았습니다.

http://blog.domaindotnet.com/2008/08/24/nhibernate-20-gold-released-must-wait-for-linq-to-nhibernate/

골드 릴리스 2.0.0.GA

NH1.2.1GA에서 NH2.0.0으로의 주요 변경 사항
  • 인프라
    • .NET 1.1은 더 이상 지원되지 않습니다.
    • Nullables.NHibernate는 더 이상 지원되지 않습니다 (.NET 2.0의 nullable 유형 사용)
    • Contrib이 이동했습니다. 새로운 위치
      • http://sourceforge.net/projects/nhcontrib
      • 컴파일 시간
        • NHibernate.Expression 네임 스페이스가 NHibernate.Criterion으로 이름이 변경되었습니다.
        • IInterceptor에는 추가 메소드가 있습니다. (IsUnsaved는 IsTransient로 이름이 변경되었습니다.)
        • INamingStrategy
        • IType
        • IEntityPersister
        • IVersionType
        • IBatcher
        • IUserCollectionType
        • IEnhancedUserType
        • IPropertyAccessor
        • ValueTypeType이 PrimitiveType으로 이름이 변경되었습니다.
        • 외부 프레임 워크에 대한 가능한 주요 변경 사항
          • 다양한 클래스가 네임 스페이스간에 이동되었습니다.
          • 다양한 클래스의 이름이 변경되었습니다 (Hibernate 3.2 이름과 일치하도록)
          • ISession 인터페이스에는 추가 메소드가 있습니다.
          • ICacheProvider
          • ICriterion
          • CriteriaQueryTranslator

          • 초기화 시간

              App.config의
            • 섹션은 더 이상 지원되지 않으며 무시됩니다. 구성 파일과 App.config의 구성 스키마는 이제 동일하며 App.config 섹션 이름은 다음과 같습니다.
            • 은 스키마가 다르며 모든 속성 이름이 확인됩니다.
            • 구성 속성에 더 이상 "hibernate"가 붙지 않습니다. "hibernate.dialect"를 지정하기 전에 "dialect"만 지정하면됩니다.
            • 모든 명명 된 쿼리는 초기화시 유효성이 검사되며 유효하지 않은 쿼리가 있으면 예외가 발생합니다 (필요한 경우 비활성화 할 수 있음).
            • 프록시 클래스에 대한 엄격한 검사 (모든 공개 메소드는 가상이어야 함)

            • 실행 시간
              • SaveOrUpdateCopy ()는 원본을 변경하지 않고 엔티티의 새 인스턴스를 반환합니다.
              • AutoFlush는 트랜잭션 외부에서 발생하지 않습니다. 데이터베이스 트랜잭션은 선택 사항이 아니며 데이터베이스와의 모든 통신은 데이터를 읽거나 쓰는 것과 상관없이 트랜잭션 내에서 발생해야합니다.
              • NHibernate는 SQL Server에서 count (*) 쿼리에 대해 long을 반환합니다.
              • <수식>은 필요한 경우 괄호를 포함해야합니다.
              • 이러한 HQL 함수 이름은 다음과 같은 HQL 예약 이름에서 충돌을 일으킬 수 있습니다.
                • 하위 문자열
                • 찾기
                • 다듬기
                • 길이
                • 비트 길이
                • 합체
                • nullif
                • abs
                • 모드
                • sqrt
                • 아래
                • 캐스트
                • 추출
                • 연쇄
                • 현재 _ 타임 스탬프
                • sysdate
                • 시간
                • 연도
                • str
                • meta-type=”class”인 경우 영구 유형은 Class.FullName을 포함하는 문자열입니다.
                  • 쿼리에서 매개 변수를 설정하려면 SetParameter (”paraName”, typeof (YourClass) .FullName, NHibernateUtil.ClassMetaType)을 사용해야합니다.

                  • 매핑

                  • : 기본 메타 유형은 "문자열"(이전 "클래스")

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