1

Entity Framework で .mdf ファイル (VS2012 では SQL Server データベースと呼ばれる) を使用するにはどうすればよいですか?

次のエラー メッセージが表示されます。

Invalid value for key 'attachdbfilename'.

これは私の接続文字列です:

<add name="DbContainer" connectionString="metadata=res://*/Database.Db.csdl|res://*/Database.Db.ssdl|res://*/Database.Db.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\v11.0;initial catalog=DataContext;Integrated Security=True;AttachDBFilename=|DataDirectory|\DataContext.mdf;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />.

Global.asax.cs、Application_Start で、次の|DataDirectory|ように正しいパスを設定しました。

string newPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data");

AppDomain.CurrentDomain.SetData("DataDirectory", newPath);

これを機能させる方法を知っている人はいますか?

ところで。Web アプリケーションをローカルで実行している場合 (デバッグ) には機能しますが、オンライン ドメインに公開する場合には機能しません。

4

1 に答える 1

0

ローカルでは機能するがオンラインでは機能しない場合data source、接続文字列の一部に問題があります。また、管理スタジオではなく実行時にデータベースをアタッチする場合は、そのinitial catalig部分を削除してください。したがって、次のように変更します。

<add name="DbContainer" 
  connectionString="metadata=res://*/Database.Db.csdl|res://*/Database.Db.ssdl
  |res://*/Database.Db.msl;provider=System.Data.SqlClient;
  provider connection string=&quot;data source=RemoteServerInstance;      
  Integrated Security=True;AttachDBFilename=|DataDirectory|\DataContext.mdf;
  MultipleActiveResultSets=True;App=EntityFramework&quot;"
  providerName="System.Data.EntityClient" />
于 2013-07-25T05:29:11.143 に答える