私は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でどのように機能させるのでしょうか?
ここでの接続文字列の問題は次のとおりです。
<add name="TrempimModel"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.sdf;
User Instance=true"
providerName="System.Data.SqlClient" />
基本的に、接続する「サーバー」を定義しますが、notはファイル内のどのデータベースに接続するかを指定します。 また、SQL Server Expressデータベースファイルのファイル拡張子は (はタイプミスでした、OPによるコメントによると)。.mdf
(.sdf
ではありません-SQL Server Compact Editionです)-これも考慮する必要があります!
接続文字列に追加の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" />
その後、それはうまく動作するはずです。
より多くの背景と大量のサンプルについては、 ConnectionStrings Webサイトをご覧ください。