1

nHibernate テスト プロジェクトを実行できないようです。次の構成ファイルとコードを使用しています。

埋め込みリソースとしてマークされた country.hbm.xml:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="SVL.Models.CountryModel, SVL" table="country">
  <id name="Id" type="int" />
  <property name="Name" type="String" length="200" />
 </class>
</hibernate-mapping>

私の休止状態の設定ファイル:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<!-- properties -->
<property name="connection.provider">
  NHibernate.Connection.DriverConnectionProvider
</property>
<property name="connection.driver_class">
  NHibernate.Driver.MySqlDataDriver
</property>
<property name="connection.connection_string">
  Server=localhost;Database=svl;User ID=root;Password=pfje1008;
</property>
<property name="dialect">
  NHibernate.Dialect.MySQL5Dialect
</property>

<mapping resource="country.hbm.xml" assembly="SVL" />
</session-factory>
</hibernate-configuration>`

そして最後に、休止状態の設定をセットアップするコード:

var cfg = new Configuration();
 cfg.Configure();

 var sessionFactory = cfg.BuildSessionFactory();

 var thisAssembly = typeof(T).Assembly;
 cfg.AddAssembly(thisAssembly);

何らかの理由で、リソースファイルが見つからないというメッセージが表示され続けます...

4

2 に答える 2

0

いくつかの問題があります。まず、呼び出している .Configure メソッドが、接続文字列、方言、およびその他の設定を含むファイルを探しています (または、これらの web.config をチェックしている可能性があります)。アセンブリを構成に追加する前に、セッション ファクトリを確認してください。

セッション ファクトリを構築するプロセスは構成の現在の状態に基づいているため、セッション ファクトリを構築する前にアセンブリを構成に追加する必要があります。

次のようなものです:

var cfg = new Configuration();
var thisAssembly = typeof(T).Assembly;
cfg.AddAssembly(thisAssembly); 
cfg.Configure();

var sessionFactory = cfg.BuildSessionFactory();

発生している例外を修正するには、次のいずれかをお勧めします。

  1. NHibernate 構成ファイルの名前を hibernate.cfg.xml に変更します (これは、app/web.config で見つからない場合にデフォルトで検索されるものです)。
  2. 構成を app/web.config に入れます ( http://nhforge.org/blogs/nhibernate/archive/2009/07/17/nhibernate-configuration.aspxを参照)
  3. Configure の呼び出しで NHibernate 構成ファイルの名前を指定します。cfg.Configure("my-nhibernate-config.config")
于 2013-06-10T16:12:02.487 に答える