1

J'ai des problèmes avec la configuration de nHibernate avec sqlite.nHibernate & sqlite mappings

Voici le fichier hibernate.cfg.xml:

<?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> 

et est ici le fichier de mappage (simplifié):

<?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> 

Le tableau:

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

Je reçois l'erreur: "Impossible de compiler le document de mappage: DataAccess.DOM.Book.hbm.xml"

Je développe en VS2008 sur Vista 32bit.

J'ai ajouté l'assembly System.Data.SQlite et défini pour copier local.

Des suggestions?

Répondre

2

Je fixe il y a cet âge, et maintenant ne me souviens pas exactement ce que je l'ai fait: o (

Cependant, en regardant le code: Je remarque que cette modification du fichier de mappage, j'ai changé l'étiquette pour l'ID de type entier vers Int32 et la classe de générateur d'incrément natif:

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

Avez-vous incorporé le fichier hbm.xml dans l'assembly?

Taken de https://www.hibernate.org/362.html:

REMARQUE: Si vous utilisez Visual Studio .NET pour compiler vous assurer que vous définissez l'action de construction du fichier User.hbm.xml Ressource incorporée. Le fichier de mappage fera maintenant partie de l'Asssembly. L'importance du détail subtil sera évidente plus tard.

+0

J'intégré le fichier hbm.xml le applicaiton travaillait avec SqlServerCe comme la base de données, mais je suis en train de passer à SQLite –

+0

encore.. obtenir cette erreur. –

0

Dans votre fichier de mappage de livres, définissez les propriétés comme celui-ci:

<property name="isbn" column="isbn"/> 
<property name="author" column="author"/> 

Assurez-vous également que vos valeurs dans les attributs de nom ci-dessus sont les mêmes cas car ils sont votre classe.

Questions connexes