2011-02-02 31 views
1

我有兩個項目:如何從我的控制檯應用程序中分離出「數據」?

  • 控制檯應用程序
  • 類庫

我想Class library定義類,創建EDMX文件,並有部分連接字符串,如:

<add name="BlogEntities" connectionString="metadata=res://*/Blog.csdl|res://*/Blog.ssdl|res://*/Blog.msl;provider=System.Data.SqlClient;provider connection string='{0}'" providerName="System.Data.EntityClient" /> 

我希望我的班級圖書館定義csdl,ssdlmsl文件。我的控制檯應用程序不關心元數據,它只會定義database,userpassword

如何將連接字符串拆分爲兩個像這樣?

回答

0

我發現我可以命名所有具有相同名稱的實體,例如Entities。我的app.config需要在控制檯應用程序上,但我可以使用一個ConnectionString

<add name="Entities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLExpress;Initial Catalog=Test;Persist Security Info=True;User ID=test;Password=test;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

元數據可以設置爲res://*/,它將在全局工作。由 實體框架使用From MSDN:

模型映射元數據被加載到一個 MetadataWorkspace。此元數據全局緩存爲 ,並且可用於 其他ObjectContext實例在 中的相同應用程序域。

我還可以強制任何插件就能模塊將使用ConnectionString通過上下文構造:

new Blogs.Data.Entities("name=Entities"); 
0

從我的記憶中,如果你在類lib中創建模型,VS會在lib項目中創建一個app.config。

只需將該文件的內容合併到控制檯庫的app.config中即可。

在這種情況下,您可以在lib的app.config文件中具有「設計」配置,並在控制檯應用程序的app.config中具有運行時配置。

+0

我想`插頭和play`庫。如果我需要複製app.config,這意味着我需要訪問項目文件... – BrunoLM 2011-02-02 21:14:51

0

在你的庫中創建一個類(例如Connector),它允許你提供你需要的任何連接值(數據庫,用戶,密碼)。然後在您的控制檯應用程序中使用此類,並提供您認爲合適的必要值。

相關問題