2011-08-20 72 views
1

我一直在嘗試用SQLite數據庫配置NHibernate,而且我好像被卡住了一個異常,我不知道該如何處理。MissingManifestResourceException用SQLite配置NHibernate

這是我的hibernate.cfg.xml文件:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property> 
    <property name="connection.connection_string"> 
     Data Source=mynewdatabase.dbf;Version=3 
    </property> 
    <property name="dialect">NHibernate.Dialect.SQLiteDialect</property> 
    <property name="query.substitutions">true=1;false=0</property> 
    <property name="show_sql">true</property> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
</session-factory> 
</hibernate-configuration> 

這是我的person.hbm.xml文件:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
       assembly="SQLiteObjects" 
       namespace="SQLiteObjects.Domain"> 
    <class name="Person"> 
    <id name="Id"> 
     <generator class="guid" /> 
    </id> 
    <property name="FirstName" /> 
    <property name="LastName" /> 
    <property name="Age" /> 
    <property name="Height" /> 
    </class> 
</hibernate-mapping> 

當運行下面的代碼,我得到一個MissingManifestResourceException(上最後一行)

var cfg = new Configuration(); 
    cfg.Configure(); 
    cfg.AddAssembly(typeof(Person).Assembly); 
    new SchemaExport(cfg).Execute(false, true, false); 
    PersonRepository pr = new PersonRepository(); 
    cfg.BuildSessionFactory(); 

我在Windows 7旗艦版64位上使用.NET 4.0。

真的很感激任何幫助。 謝謝!

+0

嘗試進入Fluent Nhibernate。配置起來更容易,並且不需要那些混亂的xml配置文件...... :) – gillyb

回答

1

最新版本的SQLite for .NET以2個DLL的形式發佈。

  • System.Data.SQLite.dll
  • SQLite.Interop.dll

兩個DLL文件必須存在於同一文件夾中的EXE。 Interop dll是平臺特定的,因此您必須手動(或後製)複製x86或x64版本。

另一件事要記住的是,SQLite.Interop.dll itslef取決於MSVCR100.DLL(VISUAL C++ 2010 SP1再發行組件包的一部分)。你可以在這裏得到它:

另外,還要確保你在新的網站上下載它,該項目現在由SQLite的團隊支持

SQLite.org的人已經接管了 System.Data.SQLite項目的所有權。新版本可以在新的 網站上找到,System.Data.SQLite.org