1

我創建了一個啓動基於窗體的GUI的AddIn。 AddIn和Gui在不同的項目中。 Gui連接到一個數據庫並利用EF作爲ORM。Visual Studio 2010添加使用實體框架

當我從VS啓動Gui項目時,它效果很好。當我將該Gui發佈到vs加載項文件夾並運行它時,它工作正常。當我從VS的加載項啓動Gui時,它加載正常,但任何試圖擊中數據庫的內容都會失敗。 EF抱怨元數據文件。

例外:指定的命名 連接或者未在 配置中找到,而不是旨在用於 與EntityClient提供者,或不 有效。

在System.Data.EntityClient.EntityConnection.ChangeConnectionString()

這裏是的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> 

我能想到的唯一的事情是,「RES: // * /「部分映射不同,當啓動程序集不同時,但我嘗試使用絕對路徑到csdl/msl/ssdl文件沒有任何成功。

從打開配置的加載項啓動Gui有什麼不同?

+0

更新:如果我將connectionString信息添加到devenv.exe.config文件中,那麼Gui應用程序可以工作。所以問題是:配置AddIn/Gui項目的正確方法是什麼,以便Gui不必知道它是如何啓動的(直接或者作爲AddIn) – soslo 2011-02-09 16:36:44

回答

0

不要依賴connectionString在你不能控制的配置文件中。相反,使用帶連接字符串的ObjectContext重載,在新建上下文時明確傳遞它。

+0

我想這在技術上是可行的,但它對於在我們的大約十幾個項目中使用的常見組裝來說,這不是一種可行的方法。 – soslo 2011-02-11 12:53:41

相關問題