Hibernate version: NHibernate-2.0.0.CR2-src
Mapping documents: Civilite.hbm.xml / app.config
Name and version of the database you are using: SQL Server 2005 Express
Je suis en C# .Net avec NHibernate.
Voici le contenu d'une classe de test pour tester mon mapping et me familiariser avec le fonctionnement de NHibernate.
Configuration cfg = new Configuration();
cfg.AddAssembly("ENTITES");
ISessionFactory factory = cfg.BuildSessionFactory();
...
Lors du BuildSessionFactory() une exception est générée :
Could not find a getter for property 'id' in class 'ENTITES.Civilite'
Voici mon fichier de config App.config
----------------------------------------------
Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string">Data Source=PORTABLE-JEROME\SQLEXPRESS;Initial Catalog=080808;Persist Security Info=True;User ID=user;Password=user </property>
<mapping assembly="ENTITES"/>
<mapping resource="ENTITES.Civilite.hbm.xml" assembly="ENTITES" />
</session-factory>
</hibernate-configuration>
</configuration>
---------------------------------------------------------
Voici ensuite mon fichier Civilite.hbm.xmlCode:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="ENTITES.Civilite, ENTITES" table="CIVILITE">
<id name="id" column="ID_CIVILITE" type="integer">
<generator class="assigned"></generator>
</id>
<property name="libelle" type="string">
<column name="LIBELLE_CIVILITE"></column>
</property>
</class>
</hibernate-mapping>
-------------------------------------------------------------
Ma table SQL Civilite
Code:
create table CIVILITE
(
ID_CIVILITE numeric(11) not null,
LIBELLE_CIVILITE varchar(50) null ,
constraint PK_CIVILITE primary key (ID_CIVILITE)
)
go
-----------------------------------------------
Et enfin mon code c# de ma classe Civilite
public class Civilite
{
private int id;
private string libelle;
public Civilite()
{
this.id = 0;
this.libelle = null;
}
#region accesseurs
public virtual int Id
{
get { return this.id; }
set { this.id = value; }
}
public virtual string Libelle
{
get { return this.libelle; }
set { this.libelle = value; }
}
#endregion
}
Les accesseurs ont été déclaré virtual car une exception était générée. Maintenant l'exception
" Could not find a getter for property 'id' in class 'ENTITES.Civilite' "
alors que mes accesseurs sont déclarés.
Need help :)[/code]