質問

アプリケーションを移行する場合にはどのような考慮事項がありますか 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-release-must-wait-for-linq-to-nhibernate/

ゴールド リリース 2.0.0.GA

NH1.2.1GA から NH2.0.0 への重大な変更

  • インフラストラクチャー

    • .NET 1.1はサポートされなくなりました
    • Nullables.NHibernate はサポートされなくなりました (.NET 2.0 の null 許容型を使用してください)
    • 投稿者が移動しました。新しい場所
  • コンパイル時間

    • NHibernate.Expression 名前空間が NHibernate.Criterion に名前変更されました
    • IInterceptor には追加のメソッドがあります。(IsUnsaved は IsTransient に名前変更されました)
    • Iネーミング戦略
    • 私はタイプする
    • IEntityPersister
    • Iバージョンタイプ
    • アイバッチャー
    • IUserCollectionType
    • IEnhancedUserType
    • IPropertyAccessor
    • ValueTypeType の名前が PrimitiveType に変更されました
  • 外部フレームワークに発生する可能性のある重大な変更

  • さまざまなクラスが名前空間間で移動されました
  • さまざまなクラスの名前が変更されました (Hibernate 3.2 の名前に一致するように)
  • ISeses インターフェイスには追加のメソッドがあります
  • Iキャッシュプロバイダー
  • I基準
  • CriteriaQueryTranslator

  • 初期化時間

    • App.config の <nhibernate> セクションはサポートされなくなったため、無視されます。構成ファイルと App.config の構成スキーマは同一になり、App.config セクション名は次のようになります。<休止状態の構成>
    • <hibernate-configuration> には異なるスキーマがあり、すべてのプロパティ名がチェックされます
    • 構成プロパティの先頭に「hibernate.」が付けられなくなりました。以前は「hibernate.dialect」を指定していましたが、現在は「dialect」のみを指定します。
    • すべての名前付きクエリは初期化時に検証され、有効でないものがあれば例外がスローされます (必要に応じて無効にできます)。
    • プロキシクラスのチェックを厳格化 (すべてのパブリックメソッドは仮想である必要があります)

  • 実行時間

    • SaveOrUpdateCopy() は、元のエンティティを変更せずにエンティティの新しいインスタンスを返します。
    • AutoFlush はトランザクションの外部では発生しません - データベース トランザクションは決してオプションではなく、データの読み取りまたは書き込みに関係なく、データベースとのすべての通信はトランザクション内で発生する必要があります。
    • Hibernate は SQL Server 上の count(*) クエリに対して Long を返します。
    • <formula> には必要に応じて括弧を含める必要があります
    • これらの HQL 関数名は、HQL 予約名で競合を引き起こす可能性があります。
      • 部分文字列
      • 見つける
      • トリム
      • 長さ
      • ビット長
      • 合体する
      • ヌリフ
      • 腹筋
      • モッド
      • 平方メートル
      • アッパー
      • より低い
      • キャスト
      • 抽出する
      • 連結
      • 現在のタイムスタンプ
      • システム日付
      • 2番
      • 時間
      • str
    • <any> の場合、meta-type=”class” の永続型は Class.FullName を含む文字列です。
      • クエリにパラメータを設定するには、SetParameter(”paraName”, typeof(YourClass).FullName, NHibernateUtil.ClassMetaType) を使用する必要があります。

  • マッピング

  • <任意> :デフォルトのメタタイプは「string」です(以前は「class」でした)
  • ライセンス: CC-BY-SA帰属
    所属していません StackOverflow
    scroll top