app.configに次の設定があります。
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="Nh.Data">
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="dialect">
NHibernate.Dialect.MsSqlCeDialect </property>
<property name="connection.driver_class">
NHibernate.Driver.SqlClientDriver
</property>
<property name="connection.connection_string">
Data Source=NhData.sdf
</property>
<property name="adonet.batch_size">16</property>
<property name="generate_statistics">true</property>
<property name="show_sql">true</property>
<mapping assembly="Nh.Model"/>
</session-factory>
</hibernate-configuration>
次のコードを使用してデータベースにアクセスする場合、
private ISessionFactory CreateSessionFactory(){
var cfg = new NHibernate.Cfg.Configuration().Configure();
return cfg.BuildSessionFactory();
}
行に次のエラーが表示されますreturn cfg.BuildSessionFactory();
A network-related or instance-specific error occurred while
establishing a connection to SQL Server. The server was not found or
was not accessible. Verify that the instance name is correct and
that SQL Server is configured to allow remote connections.
(provider: Named Pipes Provider, error: 40 - Could not open a
connection to SQL Server)
これは、 ConnectionStrings.comで推奨されているように接続プロパティを変更したときに発生するエラーと同じです。
connection.connection_string
プロパティをに変更するData Source=|DataDirectory|\bin\Debug\NhData.sdf
と、エラーは次のように変わります。
A network-related or instance-specific error occurred while
establishing a connection to SQL Server. The server was not found or
was not accessible. Verify that the instance name is correct and
that SQL Server is configured to allow remote connections.
(provider: SQL Network Interfaces, error: 26 - Error Locating
Server/Instance Specified)
SQL Server Compactの実行を有効にするために、アプリケーションフォルダーに次のファイルがあります
sqlceca40.dll sqlcecompact40.dll sqlceoledb40.dll
sqlceer40EN.dll sqlceme40.dll sqlceqp40.dll
sqlcese40.dll System.Data.SqlServerCe.dll NhData.sdf
Visual Studio IDE接続ダイアログ内から接続して接続をテストできるため、データベースファイルへのパスが正しいことがわかります。プライベート展開と中央展開(SQL Server Compact)を読み直しました。上記のエラーを検索すると、私の問題とは関係のない結果が返されます。
使用しているラップトップはWindows7Professional 64ビットを実行しており、ビルド後のイベントを使用してデータベースとDLLをアプリケーションフォルダーにコピーしています。
私が見逃している、または間違っていることはありますか?