38

私は Visual Web Developer 2010 Express で作業しており、Entity Framework コード ファースト CTP を使用しています。新しい SQL Server CE でこれを実行できますが、SQL Server Express で動作する接続文字列が見つかりません。

これは、SQL Server CE ベータ版を使用しており、正常に動作します (データベースが作成され、モデルの変更時に再作成されます)。

<add name="TrempimModel"
     connectionString="data source=|DataDirectory|TrempimModel.sdf"
     providerName="System.Data.SqlServerCe.4.0" />

これは、aspnetdb接続文字列からコピーしたものです。

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
     AttachDBFilename=|DataDirectory|TrempimModel.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />

起動時に次のメッセージが表示されます。

操作を完了できません。提供された SqlConnection は初期カタログを指定していません

では、SQL Server Express で動作させるにはどうすればよいでしょうか?

4

1 に答える 1

61

ここでの接続文字列の問題は次のとおりです。

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                       AttachDBFilename=|DataDirectory|aspnetdb.sdf;
                       User Instance=true"
     providerName="System.Data.SqlClient" />

基本的に、接続する「サーバー」を定義しますが、ファイル内のどのデータベースに接続するかを指定しているわけではありません。また、SQL Server Expressデータベースファイルのファイル拡張子は.mdf.sdfSQL Server Compact Editionではありません)、これも考慮する必要があります。OPのコメントによると、タイプミスでした)。

接続文字列に追加のdatabase=....(または)を定義する必要があります。Initial Catalog=.....

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                       database=YourDatabaseName;
                       AttachDBFilename=|DataDirectory|aspnetdb.mdf;
                       User Instance=true"
     providerName="System.Data.SqlClient" />

その後、それはうまくいくはずです。

その他の背景と大量のサンプルについては、ConnectionStringsWebサイトを確認してください。

于 2010-11-07T09:28:40.417 に答える