Konfigurieren von SQLite zu laufen mit NHibernate, wo die Versammlung aufgelöst System.Daten.SQLite?

Ich verwende die neueste NHibernate 2.1.0Beta2. Ich versuche ein unit-test mit SQLite und habe die Konfiguration eingerichtet:

        Dictionary<string, string> properties = new Dictionary<string, string>();
        properties.Add("connection.driver_class", "NHibernate.Driver.SQLite20Driver");
        properties.Add("dialect", "NHibernate.Dialect.SQLiteDialect");
        properties.Add("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
        properties.Add("query.substitutions", "true=1;false=0");
        properties.Add("connection.connection_string", "Data Source=test.db;Version=3;New=True;");
        properties.Add("proxyfactory.factory_class",
                       "NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu");

        configuration = new Configuration();
        configuration.SetProperties(properties);

Wenn ich versuche es zu starten, bekomme ich die folgende Fehlermeldung:

NHibernate.HibernateException: The IDbCommand and IDbConnection implementation in the  assembly System.Data.SQLite could not be found. Ensure that the assembly System.Data.SQLite is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the application configuration file to specify the full name of the assembly.
at NHibernate.Driver.ReflectionBasedDriver..ctor(String driverAssemblyName, String connectionTypeName, String commandTypeName) in c:\CSharp\NH\nhibernate\src\NHibernate\Driver\ReflectionBasedDriver.cs: line 26
at NHibernate.Driver.SQLite20Driver..ctor() in c:\CSharp\NH\nhibernate\src\NHibernate\Driver\SQLite20Driver.cs: line 28 

So wie es aussieht muss ich auf die assembly verweisen, direkt. Wie würde ich dies tun, damit ich nicht bekommen, diese Fehler nicht mehr?

Ich heruntergeladen habe die neueste assembly von hier: http://sourceforge.net/projects/sqlite-dotnet2.

  • Ist der code von sqlite-dotnet2 in der Anwendung-Verzeichnis? (oder im GAC registrierte?)
  • Ich habe einen Verweis auf System.Data.SQLite.DLL in meinen Referenzen des Projekts. Ich gehe davon aus wenn ich das Gerät testen (durch Resharper unit-test-runner), kopiert er es über.
  • Im Fall, dass jemand läuft in dieser Frage und ist auf der Suche nach einer aktualisierten version dieser Antwort -<br/> Der post in meinem blog über diese genaue Frage ist viel mehr aktualisiert, als die Antworten hier...<br/> http://debuggerstepthrough.blogspot.co.il/2011/08/unit-testing-fluentnhibernate.html
Schreibe einen Kommentar