Fluent NHibernate kann mit SQLite arbeiten

7

Ich bin mir sicher, dass es etwas einfaches gibt, was ich nicht getan habe, aber ich versuche, Fluent NHibernate mit Sqlite auf meinem Rechner zu verwenden.

Ich habe NuGet verwendet, um flüssiges Nhibernate herunterzuladen, und folgende Entität und Zuordnung hinzugefügt:

%Vor%

Nach dem Start mit fließendem Handbuch habe ich den folgenden Code zu einem Windows Command Projekt hinzugefügt:

%Vor%

Schließlich habe ich die SQLite-DLL mit NuGet hinzugefügt. Allerdings erhalte ich den folgenden Fehler, wenn ich versuche, das Programm auszuführen:

Top Ausnahme:

%Vor%

Nächste Ausnahme:

%Vor%

Innerste Ausnahme:

%Vor%

Dies ist, wenn es versucht, die Sitzungsfabrik zu erstellen.

Kann mir jemand helfen? Ich betreibe eine 32-Bit-Maschine?

Danke

Dave

    
CraftyFella 14.04.2011, 15:04
quelle

6 Antworten

11

Sie brauchen zwei Dinge:

  1. Referenz System.Data.SQLite in Ihrem Projekt.
  2. Fügen Sie sqlite3.dll hinzu, aber Sie können auch keinen Verweis auf sqlite3.dll hinzufügen, da es sich um eine nicht verwaltete DLL handelt. Fügen Sie es einfach als Element zur Lösung hinzu und legen Sie es so fest, dass es in das Ausgabeverzeichnis kopiert wird.
rebelliard 14.04.2011 22:52
quelle
5

Sie benötigen den .NET Provider für Sqlite. Laden Sie es hier herunter Ссылка

    
Vadim 14.04.2011 15:18
quelle
5

Nach anfänglicher Untersuchung dachte ich, dass dies daran lag, dass meine System.Data.SQLite-Assembly zu diesem Zeitpunkt nicht in den Arbeitsspeicher geladen wurde. Daher habe ich Code hinzugefügt, um die system.Data.SQLite-Assembly vorab zu laden. Beim Ausführen der Anwendung trat jedoch der eigentliche Fehler auf:

Die Assemblierung im gemischten Modus wird gegen die Version 'v2.0.50727' der Laufzeit erstellt und kann nicht ohne zusätzliche Konfigurationsinformationen in die 4.0-Laufzeitumgebung geladen werden.

um das zu beheben, habe ich meine app.config wie folgt geändert:

%Vor%

Das wichtige Bit ist useLegacyV2RuntimeActivationPolicy="true"

    
Eminem 29.11.2011 07:32
quelle
1

Ich hatte heute dasselbe Problem und verbrachte eine Stunde damit, nach einer Lösung zu suchen. Jedenfalls habe ich hier einen gefunden:

Ссылка

Grundsätzlich müssen Sie eine ältere Version von SQLite (v1.0.60) von hier verwenden: Ссылка

Außerdem habe ich gestern auf einem Rechner mit VS2010 SP1 den gleichen Code bekommen. Derselbe Code würde heute auf einer Maschine ohne SP1 nicht ausgeführt werden. Wenn jemand die Möglichkeit hat, diese zu testen, d. H. Indem Sie VS2010 SP1 installieren, lassen Sie mich bitte das Ergebnis wissen.

    
Karis Sr. 24.05.2011 12:17
quelle
1

Keine der oben genannten Lösungen oder sonst etwas, das ich im Internet finden konnte, funktionierte für mich ... bis ...

Ich musste sowohl die x64- als auch die x86-Version von SQLite installieren (nach Vadims Link: Ссылка ), speziell in dieser Reihenfolge.

Zuerst habe ich die 32-Bit-Version vor der 64-Bit-Version installiert, die nichts repariert hat. Aus einer Laune heraus habe ich sie beide deinstalliert und in umgekehrter Reihenfolge neu installiert. Jetzt funktioniert es!

Ich habe das auf zwei verschiedenen Maschinen getestet und überprüft, dass dies die Lösung für beide war. Verrückt, aber effektiv.

    
ParaSwarm 18.03.2013 20:50
quelle
0

Ich bin auch auf dieses Problem gestoßen.
Es wurde festgestellt, dass das Starter-Beispielprojekt auf .net framework 3.5 abzielt und das von mir erstellte (Übungsprojekt) target .net framework 4.0 Clientprofil (Standard von vs2010).
Ich habe die Zielversion auf 3.5 geändert und konnte an meinem Übungsprojekt arbeiten.

    
joeyend 23.05.2012 15:07
quelle