Sql – nHibernate & sqlite mappings

mappingnhibernatenhibernate-mappingsqlitevisual-studio-2008

I'm having real problems with setting up nHibernate with sqlite.

Here is the hibernate.cfg.xml file:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.SQLite20Dialect</property>
    <property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
    <property name="connection.connection_string">Data Source=books.db;Version=3</property>
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
    <property name="query.substitutions">true=1, false=0</property>

    <property name="show_sql">true</property>
    <property name="format_sql">true</property>


  </session-factory>
</hibernate-configuration>

and here is the (simplified) mapping file:

 <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly ="DataAccess" namespace="DataAccess.DOM">
  <class name="Book" table="book">
    <id name="id" type="integer" unsaved-value="null">
      <generator class="increment"/>
    </id>

    <property name="isbn" type="string" length="25"/>
    <property name="author" type="string" length="100"/>

  </class>
</hibernate-mapping>

The table:

create table book(
  id INTEGER primary key,
  author TEXT,
  isbn TEXT,
);

I get the error:
"Could not compile the mapping document: DataAccess.DOM.Book.hbm.xml"

I'm developing in VS2008 on Vista 32bit.

I've added the System.Data.SQlite assembly and set to copy local.

Any suggestions?

Best Answer

I fixed this ages ago, and now can't remember exactly what I did :o(

However, looking at the code: I notice this change to the mapping file, I changed the tag for the Id from integer to Int32 and the generator class from increment to native:

<id name="Id" type="Int32" unsaved-value="0">
  <generator class="native"/>
</id>