Fluent NHibernate - Ausnahme bei der Konfiguration der Persistenzschicht

7

Ich verwende Fluent NHibernate mit einer externen 'hibernate.cfg.xml' Datei.

Nachfolgend ist der Konfigurationscode, bei dem ich einen Fehler erhalte:

%Vor%

Aber wenn NHibernate versucht, zu konfigurieren, erhalte ich einen fließenden Fehler:

Während der Konfiguration der Persistenzschicht ist eine Ausnahme eingetreten.

Die innere Ausnahme sagt:

  

Die ProxyFactoryFactory wurde nicht konfiguriert.   Initialisieren Sie die Eigenschaft 'proxyfactory.factory_class' des Konfigurationsabschnitts session-factory mit einem der verfügbaren NHibernate.ByteCode-Provider.

Ich habe gegoogelt und nach einigen Lösungen, die ich gefunden habe, habe ich folgende Änderungen vorgenommen:

  1. Fügen Sie folgende dlls zu meinem App Bin hinzu:

    Castle.Core.dll, Castle.DynamicProxy2.dll, NHibernate.ByteCode.Castle.dll

  2. Hinzugefügt folgende Eigenschaft in hibernate.cfg.xml

    & lt; Eigenschaftsname="proxyfactory.factory_class" & gt; NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle & lt; / property & gt;

Aber ich bekomme immer noch die selbe Ausnahme.

    
iniki 27.10.2009, 13:42
quelle

10 Antworten

1

Das Problem könnte in Ihrer hibernate.cfg.xml sein, überprüfen Sie, ob die Version 2.2 verwendet wird und ob sie gut gebildet ist.

Das Mapping sollte wie folgt beginnen:

%Vor%

Zusammen mit dem Fehler, den Sie veröffentlichen, werden möglicherweise weitere Informationen bereitgestellt, da dieser Fehler für den Konfigurationsparser ziemlich allgemein ist. Wenn nicht, können Sie vielleicht weitere Details zu Ihrer hibernate.cfg.xml angeben.

    
Marc Climent 27.10.2009, 14:18
quelle
14

Ich hatte diesen Fehler auch. Es wird ausgelöst, wenn Sie die Zuordnungsdatei (hibernate.cfg.xml) nicht in das Erstellungsverzeichnis kopieren.

Lösung:

  • Klicken Sie im Solution Explorer in der Mapping-Datei mit der rechten Maustaste ( hibernate.cfg.xml ), wählen Sie Eigenschaften und stellen Sie sicher, dass < strong> In Ausgabeverzeichnis kopieren hat Kopieren, wenn neuer ausgewählt).
kkmct 16.05.2010 16:52
quelle
5

Wie Alex InTechno sagte, könnte dies der Fehler in der Definition Ihrer Mapping-Dateien oder in zugeordneten Entitäten sein. Ich habe den gleichen Fehler erlebt, wenn ich vergessen habe, dass alle Eigenschaften in den zugeordneten Klassen als virtual definiert werden müssen.

%Vor%     
hoonzis 05.02.2012 15:07
quelle
1

Ausnahme mit dem Text von PotentialRegungen

* Die Datenbank wurde nicht über die Datenbankmethode konfiguriert.

kann auch von der FluentConfiguration.BuildConfiguration () -Methode ausgelöst werden, wenn Ihre Zuordnungen falsch sind (d. h. * Zuordnungsklassen wurden nicht erfolgreich analysiert) und Sie haben die Datenbank nicht mit der .Database () -Methode konfiguriert. Dies ist ein bisschen verwirrend, dass es nur beim Erstellen der Konfiguration entdeckt wird, nicht wenn diese Klassen aus der Assembly (von AddFromAssemblyOf & lt; & gt;) hinzugefügt werden.

Sie können überprüfen, ob Ihre * Map-Klassen erfolgreich in HBM konvertiert wurden, indem Sie eine Zeile ausführen m.FluentMappings.Add (typeof (YourMappedTypeMap)). ExportTo (@ "c: \ Temp \ fluentmaps"))

    
Alex InTechno 09.12.2010 11:43
quelle
1

Ich hatte das gleiche Problem mit NUnit-Tests unter Resharper 8.1

Häkchen bei "ReSharper | Optionen | Werkzeuge | Komponententests | Benutze separate AppDomain für jede Assembly mit Tests" Checkbox fixed it

    
user2821044 18.02.2014 13:21
quelle
0

Nun, ich konnte diesen Fehler beheben, indem ich die Datei .cfg.xml in den Bin der aufrufenden App platzierte.

Aber jetzt bekomme ich einen weiteren Fehler: - (

FluentNHibernate.Cfg.FluentConfigurationException wurde nicht behandelt Nachricht: Beim Erstellen einer SessionFactory wurde eine ungültige oder unvollständige Konfiguration verwendet. Überprüfen Sie die PotentialReasons-Auflistung und InnerException für weitere Details.

* Die Datenbank wurde nicht über die Datenbankmethode konfiguriert.

Hier ist meine hibernate.cfg.xml

%Vor%

Irgendwelche Gedanken?

    
iniki 27.10.2009 14:47
quelle
0

Beim Versuch, die Datenbank in App.config und die Zuordnungen über Fluent NHibernate zu konfigurieren, habe ich auch eine FluentNHibernateException

erhalten
  • Die Datenbank wurde nicht über die Datenbankmethode konfiguriert.

Der Link zum Anzeigen der Details wurde deaktiviert, so dass ich keine weiteren Informationen erhalten konnte. Nach stundenlangem Suchen fand ich schließlich heraus, dass meine Verbindungszeichenfolge einen Fehler hatte ("pasword = xyz;" anstelle von "password = xyz;")

    
Jakobus 17.01.2011 14:20
quelle
0

Versuchen Sie, den Modifikator in set_id und set_sampellList zu schützen. zum Beispiel:

%Vor%

und

%Vor%     
quelle
0

Ich beginne das

zu empfangen

* Die Datenbank wurde nicht über die Datenbankmethode konfiguriert.

Fehlermeldung beim Versuch, eine Verbindung zu einer DB / 2-Datenbank herzustellen, ohne Änderungen an meinem Code vorgenommen zu haben. Nachdem ich überprüft hatte, dass die Konfigurationsdatei in das Build-Verzeichnis kopiert wurde und verifiziert wurde, dass mein XML wohlgeformt war und der Version 2.2 entsprach, ging ich schließlich zur Überprüfung der Datenbank, um sicherzustellen, dass sich nichts geändert hatte.

Es stellte sich heraus, dass das Passwort für das Verbindungskonto abgelaufen war. Es war nicht ungültig, noch war das Konto inaktiv - das Passwort war lediglich abgelaufen. Ich bin mir nicht sicher, warum das abgelaufene Passwort in solch einer seltsamen Fehlermeldung manifestiert.

    
Rob 15.01.2015 10:47
quelle
0

Es scheint, als ob dieser Fehler eine Menge verschiedener Dinge sein kann. Ich bekam den gleichen Fehler und fand schließlich heraus, dass es war, weil ich eine unbenutzte Ansicht und ein Mapping vom Projekt ausgeschlossen hatte. Keine Ahnung, wie das den Fehler verursacht hat, aber sobald ich es wieder hinzugefügt habe, war der Fehler weg.

    
Darian Everett 03.02.2016 23:00
quelle