NHibernateの設定に問題がありますが、問題の内容が正確ではありません。私はドメインオブジェクトをデータベースに保存しようとしています(Oracle 10g XE)。しかし、ISessionFactoryの作成中にTypeInitializationExceptionが発生します。私はデータベースにドメインオブジェクトを永続化するために使用するDAOを作成NHibernateが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>
:ここに同じように私はhibernate.cfg.xmlが見えるものです。 DAOは、SessionFactoryを作成するHibernateUtilクラスを使用します。どちらのクラスも、Hibernate構成とともにDataAccess名前空間にあります。これが例外の発生場所です。そのクラスは次のとおりです。
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;
}
}
DataAccess名前空間はNHibernate DLLを参照します。これは、私がJavaでHibernateで使ったのと事実上同じ設定なので、私がここで間違っていることを完全には分かっていません。何か案は?
「ファイルが見つかりませんでした「C:\ユーザーはプロジェクト\ Visual Studioの2010 \タイラー\ドキュメント\ \ MyProjectと\ MyProjectと\ ConsoleApplication \ binに
編集
最も内側の例外は以下のとおりです。 \ Debug \ hibernate.cfg.xml '。 "
ConsoleApplicationには、私がUserオブジェクトを作成したエントリポイントが含まれており、DAOで永続化しようとしています。なぜそこに設定ファイルがあるのですか?実際の永続化は、DataAccessにあるDAOで行われます。また、ConsoleApplicationに設定ファイルを追加しても、それを見つけられません。
例外の内容を投稿してください。 – Vadim
@ヤーズ:私は自分の投稿を更新しました。 –