2010-09-23 48 views
0

我的ASP.NET MVC 2應用程序使用實體框架4.0作爲數據模型。在http://blogs.msdn.com/b/aspnetue/archive/2010/09/17/second_2d00_post.aspx依照指示操作,我把的.edmx在自己組裝,所以我的解決方案有兩個項目:跨庫的多個配置文件

MyApp.Core (ASP.NET MVC 2 Web Application Project, references MyApp.DataLayer) 
Models/ 
Controllers/ 
Views/ 
Web.config 

MyApp.DataLayer (Class Library Project) 
Entities.edmx 
App.Config (<-- generated by edmx when I update model from DB) 

當我重新Entities.edmx,它創建了連接字符串下MyApp.DataLayer App.config文件數據庫。問題是,當我部署解決方案時,Web.config是唯一已部署的配置,因此我必須手動將這些連接字符串添加到它,否則我會在運行時遇到異常,因爲找不到它們。

我想不要在Web.config和App.Config中定義相同的連接字符串。我應該如何組織我的項目/配置文件,以便只能在一個地方找到db的連接字符串?這可能嗎?

回答

1

您可以將自動生成的app.config嵌入到您的Model項目中,並在您使用GetEmbeddedResource創建DataContext時引用連接字符串...或者(更普通的方法)從自動生成的應用程序手動複製連接字符串.config配置到你的web.config。

如果您希望真正具有創造性,請創建一個簡單的T4模板,在您生成EDMX模型時將web.config中的app.config連接字符串複製到該模板中。