1

私はAddInを作成して、フォームベースのGUIを起動します。 AddInとGuiは異なるプロジェクトに属しています。 Guiはデータベースに接続し、ORMにEFを使用します。Visual Studio 2010 Add Entity Frameworkを使用して

私はVSからGuiプロジェクトを起動すると、素晴らしい動作します。そのGuiをvs add-insフォルダに公開して実行すると、正常に動作します。 VSのアドインからGuiを起動すると、正常に読み込まれますが、データベースにヒットしようとするものはすべて失敗します。 EFはメタデータファイルについて苦情を言います。

例外:指定した名前の 接続がEntityClientプロバイダと 、またはない 有効に使用することを意図していない、 構成では見られないのどちらか。ここでSystem.Data.EntityClient.EntityConnection.ChangeConnectionStringで

()

は、私は考えることができる唯一のことは、「RESということですapp.configをで設定

<connectionStrings> 
    <add name="companyEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=TESTDB;Initial Catalog=company;Persist Security Info=True;User ID=id;Password=password;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/> 
    </connectionStrings> 

次のとおりです。 // */"部分は、開始アセンブリが異なる場合には別の方法でマップされますが、csdl/msl/ssdlファイルへの絶対パスを使用してみると成功しませんでした。

コンフィグレーションを壊すアドインからGuiを起動することについての違いは何ですか?

+0

更新:devenv.exe.configファイルにconnectionString情報を追加すると、Guiアプリケーションが動作します。ですから、質問は次のようになります:Guiがどのように起動されているかを知る必要がないようにAddIn/Guiプロジェクトを構成する正しい方法は何ですか(直接、またはAddInとして) – soslo

答えて

0

制御しない設定ファイルのconnectionStringには依存しないでください。代わりに、接続文字列を取るオーバーロードをObjectContextで使用して、コンテキストを新規作成するときに明示的に渡します。

+0

私はそれが技術的にはうまくいくと思いますが、約12のプロジェクトで使用される一般的なアセンブリのための適切なアプローチではありません。 – soslo

関連する問題