例外が発生します
基盤となるプロバイダーがConnectionStringで失敗しました。
内部例外を除いて
キー'attachdbfilename'の値が無効です
Windows 7ホームプレミアム仮想マシンで、アプリケーションを展開およびデバッグしようとしています。
しかし、私の開発マシンでは、アプリケーションは問題なく起動するだけです。
接続文字列は次のとおりです。
<add name="AssetsLocalDBEntities" connectionString="metadata=res://*/AssetsLocalDB.csdl|res://*/AssetsLocalDB.ssdl|res://*/AssetsLocalDB.msl;provider=System.Data.SqlClient;provider connection string="data source=(localdb)\v11.0;attachdbfilename=|DataDirectory|\AssetDatabase.mdf;initial catalog=AssetDBSource;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Steve Wellensは、このトピックで接続文字列にガベージが含まれていると述べています 。基になるプロバイダーがConnectionStringで失敗しました
それでも、Maxim Gueivandovが返信したように、これはEntityFrameworkのedmxデザイナーによって直接生成されるため、有効な接続文字列である必要があります。少なくとも、開発マシンで動作するので、有効だと思います。
また、別のトピック(Entity Framework-基礎となるプロバイダーがConnectionStringで失敗しました)では、受け入れられた答えは&quot;を削除することです。文字列はc#コードのリテラルであるため、それらを\ "に置き換えますが、接続文字列はまだxmlにあるため、&quot;を単純に置き換えることはできません。on-connectionstring
仮想マシンにインストールされている.NETバージョンは4.0.30319であり、MsSQL Server Express LocalDBは11.0.2318.0であるため、どちらも最新であると思います。
編集:「|DataDirectory|」を削除した場合 接続文字列から、開発マシンで次のエラーが発生します。
ファイル「AssetDatabase.mdf」をデータベース「AssetDBSource」として添付できません。
したがって、「initialcatalog=AssetDBSource」も削除します。
ファイルAssetDatabase.mdfの自動名前付きデータベースをアタッチしようとして失敗しました。同じ名前のデータベースが存在するか、指定されたファイルを開くことができないか、UNC共有にあります。
どこを見ればいいのかわからないからだと想像できますか?だから、私はそれにフルパス(C:.. \ AssetDatabase.mdf)を提供し、それは機能します。
したがって、残りの質問は、LocalDBで相対パスを機能させるにはどうすればよいですか?