2012-02-14 5 views
0

Firebird 2.5を使いたいです。 .NET 4.0プロジェクトでNHibernate 3.2を組み込みました。この作品は、ファイヤーバードのプロバイダーのコードで素晴らしいです。私はNHibernateはFirebird Embedded - ファイルを開こうとしたときにエラーが発生しました

Configuration = new Configuration().Configure(); 

を設定しようとすると、しかしUPD:私はセッションファクトリを構築するために

Factory = Configuration.BuildSessionFactory(); 

をしようとすると、

エラーが発生します。

I/Oエラー時にファイル "C:\ MYDB.FBD"の "CreateFile(open)"操作 開こうとしているときにエラーが発生しましたapp.configをすべてでは

ファイルが正常に見える

<configSections> 
    <section 
     name="hibernate-configuration" 
     type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" 
    /> 
</configSections> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
      <property name="connection.driver_class">NHibernate.Driver.FirebirdClientDriver</property> 
      <property name="connection.connection_string"> 
       Server=localhost; 
       ServerType=1; 
       Database=C:\MYDB.FBD; 
       User=SYSDBA;Password=masterkey 
      </property> 
      <property name="show_sql">true</property> 
      <property name="dialect">NHibernate.Dialect.FirebirdDialect</property> 
      <property name="command_timeout">60</property> 
      <property name="query.substitutions">true 1, false 0, yes 1, no 0</property> 
    </session-factory> 
</hibernate-configuration> 
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
</startup> 

+0

なぜ組み込みデータベースとしてlocalhostを指定しますか?このプロパティを空にしてください。 @AndreiK。 –

+0

。私はもう試した。しかし何も変わっていない。現在、私はIConnectionProviderの実装に関するいくつかの情報を探しています –

答えて

0

私の推測で埋め込まれたFirebirdのは、独占的ファイルを使用して、別のセッションを開いたとき、それは同じファイルに接続しようとするということですスローします。以下の

1に役立ちます:

  • はグローバル接続を保持し、OpenSession(globalConnection);
  • を行い、私は「解決策を見ていないので、単一のデータベース接続
+0

私は別のプロジェクトを作成し、nhibernateの設定だけを含んでいて、同じエラーを受け取りました...おそらくnhibernateはこの段階でいくつかのセッションを作成しますか? –

+0

IConnectionProviderを実装しましたか? – Firo

+0

これを実装しようとしています。あなたの助言をありがとう! –

0

を配布資料するIConnectionProviderを実装私が見つけたものを追加してください。この投稿の年齢はどれくらいですか?: データベースを使用する前にFirebirdSql.Data.FirebirdClient.FbConnection.CreateDatabase(ConnectionString);に電話する必要があります。

https://sourceforge.net/p/firebird/mailman/message/9316804/

挨拶 Juy Juka

関連する問題