J'ai un peu de difficulté à configurer NHibernate, et je ne sais pas trop quel est le problème. J'essaie de sauvegarder un objet de domaine dans la base de données (Oracle 10g XE). Cependant, j'obtiens une exception TypeInitializationException en essayant de créer l'ISessionFactory. Voici ce que mon hibernate.cfg.xml ressemble:NHibernate ne parvient pas à créer SessionFactory
<?xml version="1.0" encoding="utf-8"?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="MyProject.DataAccess">
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<property name="connection.connection_string">
User ID=myid;Password=mypassword;Data Source=localhost
</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.OracleDialect</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<mapping resource="MyProject/Domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
J'ai créé un OAC que je vais utiliser pour des objets persistants domaine à la base de données. DAO utilise une classe HibernateUtil qui crée la SessionFactory. Les deux classes se trouvent dans l'espace de noms DataAccess avec la configuration Hibernate. C'est là que l'exception se produit. Voici cette classe:
public class HibernateUtil
{
private static ISessionFactory SessionFactory = BuildSessionFactory();
private static ISessionFactory BuildSessionFactory()
{
try
{
// This seems to be where the problem occurs
return new Configuration().Configure().BuildSessionFactory();
}
catch (TypeInitializationException ex)
{
Console.WriteLine("Initial SessionFactory creation failed." + ex);
throw new Exception("Unable to create SessionFactory.");
}
}
public static ISessionFactory GetSessionFactory()
{
return SessionFactory;
}
}
L'espace de noms DataAccess fait référence aux DLLs NHibernate. C'est pratiquement la même configuration que j'ai utilisée avec Hibernate en Java, donc je ne suis pas entièrement sûr de ce que je fais mal ici. Des idées?
Modifier
L'exception la plus profonde est la suivante:
« Impossible de trouver le fichier « C: \ Users \ Tyler \ Documents \ Visual Studio 2010 \ Projects \ MyProject \ MyProject \ ConsoleApplication \ bin \ Debug \ hibernate.cfg.xml '. " ConsoleApplication contient le point d'entrée où j'ai créé un objet Utilisateur et que j'essaie de le conserver avec mon DAO. Pourquoi cherche-t-il le fichier de configuration ici? La persistance réelle a lieu dans le DAO, qui est dans DataAccess. En outre, lorsque j'ajoute le fichier de configuration à ConsoleApplication, il ne le trouve toujours pas.
Poster le contenu de l'exception s'il vous plaît. – Vadim
@Yads: J'ai mis à jour mon message. –