Frage

Welche Überlegungen gibt es für die Migration einer Anwendung? NHibernate 1,2 bis 2,0?Was sind Breaking Changes vs.Empfohlene Änderungen?

Gibt es Zuordnungsprobleme?

War es hilfreich?

Lösung

Wichtige Änderungen in NHibernate 2.0

Wenn Sie über eine gute Testabdeckung verfügen, ist das viel Arbeit.

Bearbeiten:Wir haben heute Morgen ein Upgrade durchgeführt.Es gibt nichts Großes.Sie müssen die Sitzung nach dem Löschen leeren().Der Expression-Namespace wurde in Criterion umbenannt.All dies wird im obigen Link behandelt.Zuordnungen müssen nicht geändert werden.Es ist ziemlich transparent.Oh, und Transaktionen überall, aber das hast du wahrscheinlich schon getan.

Hier ist übrigens ein interessanter Blick auf die Änderungen: http://codebetter.com/blogs/patricksmacchia/archive/2008/08/26/nhibernate-2-0-changes-overview.aspx

Andere Tipps

Die Antwort habe ich hier gefunden:

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

Gold-Release 2.0.0.GA

BRANDNEUE ÄNDERUNGEN von NH1.2.1GA zu NH2.0.0

  • Infrastruktur

    • .NET 1.1 wird nicht mehr unterstützt
    • Nullables.NHibernate wird nicht mehr unterstützt (verwenden Sie nullfähige Typen von .NET 2.0).
    • Beitrag verschoben.Neuen Ort
  • Kompilierzeit

    • Der NHibernate.Expression-Namespace wurde in NHibernate.Criterion umbenannt
    • IInterceptor verfügt über zusätzliche Methoden.(IsUnsaved wurde in IsTransient umbenannt)
    • INamingStrategy
    • Ich tippe
    • IEntityPersister
    • IVersionType
    • IBatcher
    • IUserCollectionType
    • IEnhancedUserType
    • IPropertyAccessor
    • ValueTypeType wurde in PrimitiveType umbenannt
  • Mögliche Breaking Changes für externe Frameworks

  • Verschiedene Klassen wurden zwischen Namensräumen verschoben
  • Verschiedene Klassen wurden umbenannt (um den Namen von Hibernate 3.2 zu entsprechen).
  • Die ISession-Schnittstelle verfügt über zusätzliche Methoden
  • ICacheProvider
  • IKriterium
  • CriteriaQueryTranslator

  • Initialisierungszeit

    • Der Abschnitt <nhibernate> in App.config wird nicht mehr unterstützt und ignoriert.Das Konfigurationsschema für die Konfigurationsdatei und App.config ist jetzt identisch und der Abschnittsname App.config lautet:<Hibernate-Konfiguration>
    • <hibernate-configuration> hat ein anderes Schema und alle Eigenschaftennamen werden überprüft
    • Den Konfigurationseigenschaften wird nicht mehr „hibernate“ vorangestellt. Wenn Sie zuvor „hibernate.dialect“ angegeben haben, geben Sie jetzt nur noch „dialect“ an.
    • Alle benannten Abfragen werden zum Zeitpunkt der Initialisierung validiert. Wenn eine Abfrage ungültig ist, wird eine Ausnahme ausgelöst (kann bei Bedarf deaktiviert werden).
    • Strengere Prüfungen für Proxy-Klassen (alle öffentlichen Methoden müssen virtuell sein)

  • Laufzeit

    • SaveOrUpdateCopy() gibt eine neue Instanz der Entität zurück, ohne das Original zu ändern
    • AutoFlush findet nicht außerhalb einer Transaktion statt – Datenbanktransaktionen sind niemals optional, die gesamte Kommunikation mit der Datenbank muss innerhalb einer Transaktion erfolgen, unabhängig davon, welche Daten Sie lesen oder schreiben.
    • NHibernate gibt für count(*)-Abfragen auf SQL Server long zurück
    • <Formel> muss bei Bedarf Klammern enthalten
    • Diese HQL-Funktionsnamen können zu Konflikten in Ihren reservierten HQL-Namen führen:
      • Teilzeichenfolge
      • Lokalisieren
      • trimmen
      • Länge
      • bit_länge
      • verschmelzen
      • nullif
      • Abs
      • Mod
      • Quadrat
      • Oberer, höher
      • untere
      • gießen
      • Extrakt
      • Konkat
      • Aktueller Zeitstempel
      • sysdate
      • zweite
      • Minute
      • Stunde
      • Tag
      • Monat
      • Jahr
      • str
    • <any> wenn meta-type=“class“ der persistente Typ eine Zeichenfolge ist, die den Class.FullName enthält
      • Um einen Parameter in einer Abfrage festzulegen, müssen Sie SetParameter(“paraName“, typeof(YourClass).FullName, NHibernateUtil.ClassMetaType) verwenden.

  • Kartierung

  • <beliebig>:Der Standard-Metatyp ist „string“ (war „class“)
  • Lizenziert unter: CC-BY-SA mit Zuschreibung
    Nicht verbunden mit StackOverflow
    scroll top