6

NHibernate で LocalDB データベースを使用することは可能ですか? はいの場合、何をインストール/構成する必要がありますか?

現在、SessionFactory の作成時にData Source=(LocalDb)\v11.0;Initial Catalog=tst1;Integrated Security=SSPIのような接続文字列を使用しようとすると、

System.Data.SqlClient.SqlException : SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした) ----> System.ComponentModel.Win32Exception: ネットワーク パスが見つかりませんでした

ただし、SQL Server オブジェクト エクスプローラー経由で(LocalDb)\v11.0に接続でき、Entity Framework はその接続文字列で動作します。それで、私はNHで何が間違っているのですか、それとも現時点でNHでLocalDBを使用することは不可能ですか?

4

5 に答える 5

2

nH で古風な構文を使用する必要がある場合があります。たとえば、次のようになります。

np:\\.\pipe\LOCALDB#ABB78D50\tsql\query

(接続文字列にこの構文が必要になる場合がある理由の背景については、SQL Server 2012 については mssqltips.comのこのヒントを、より新しいバージョンについてはこのヒントを参照してください)。

これは理想的な答えではないことはわかっていますが、nHibernate が SqlLocalDb を正式にサポートするように更新されるまでは、それが唯一の選択肢かもしれません。

于 2012-07-02T17:31:19.137 に答える
1

このタイプの接続文字列はすべての人にとって大きな頭痛の種であるため、 np:\ を使用する必要はありません。localdb 名前付きパイプのアドレスは頻繁に変更されるため、接続文字列に反映する必要があります。

localDB で NHibernate を使用するには、最新バージョンの NHibernate を入手し、次の接続文字列を使用します。

Server=(localdb)\v11.0;Initial Catalog=<dbname>;User ID=<user>;password=<pwd>;Integrated Security=false;AttachDBFilename=<dbfile_path><dbfilename>.mdf

トリックは、AttachDBFilename です。

于 2013-10-05T10:32:04.943 に答える
1

はい、接続可能です。[表示] -> [サーバー エクスプローラー] -> [データ接続] を展開し、右クリックして [プロパティ] に移動します。Identity、Conenction、Misc の領域が表示されます。接続領域には、NHibernate が構成されている .xml ファイルに必要な接続文字列があります。次のように、connection.string プロパティの下にその文字列をコピーします。

<property name="connection.connection_string">Data Source=(LocalDb)\v11.0;AttachDbFilename={path}\aspnet-{projectName}-20141201132517.mdf;Initial Catalog=aspnet-{projectName}-20141201132517;Integrated Security=True</property>

この投稿に続いて、NHibernate を MVC プロジェクトに追加しました。

この助けを願っています。

于 2014-12-13T13:44:04.980 に答える
0

この更新プログラムを必ずインストールしてください: http://support.microsoft.com/kb/2544514

次に、データベースが作成されていることを確認します。

  • Database Explorer または Sql Management Studio を使用すると、(localdb)\v11.0 に接続されます
  • 走るCREATE DATABASE [dbname]
  • 必要に応じてテーブルを作成する

接続文字列を次のように変更します。

Data Source=(LocalDb)\v11.0;Initial Catalog=dbname;Integrated Security=true

そして、ウェブを実行します。それはうまくいくはずです。

于 2013-09-25T06:56:51.747 に答える