2011-08-10 68 views
15

如何在代碼優先的實體框架/ MVC應用程序中更改連接字符串?我試圖將其轉移到一個實時站點,但它忽略了Web配置值並仍然引用了我的本地數據庫版本。Code First Entity Framework - 更改連接字符串

這裏是我的web.config的連接字符串部分:

<add name="MembershipConnectionString" connectionString="Data Source=192.168.1.43;Initial Catalog=Website.Models.IntranetApplication;User Id=[UserName];Password=[Password];timeout=30" /> 
<add name="WebsiteConnectionString" connectionString="Data Source=192.168.1.43;Initial Catalog=Website.Models.IntranetApplication;User Id=[UserName];Password=[Password];timeout=30" /> 
<add name="Entities" connectionString="metadata=res://*/Models.IntranetModel.csdl|res://*/Models.IntranetModel.ssdl|res://*/Models.IntranetModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=192.168.1.43;Initial Catalog=Website.Models.IntranetApplication;User Id=[UserName];Password=[Password];MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

我不知道,如果實體字符串有任何關聯,爲我所用代碼第一次實體框架,我認爲纔出現當我嘗試創建一個edmx文件時(儘管我最終刪除了它)。實體連接字符串已被註釋掉,所以我不認爲它被使用。

我想要實體框架來讀取「WebsiteConnectionString」,但它似乎想要使用本地連接字符串,但我什至不能看到設置。我該如何改變它?

回答

31

連接字符串或其名稱可以傳遞給構造函數DbContext。如果使用的是默認的構造函數將搜索與相同的名稱派生上下文類的名稱的連接字符串,如果沒有找到它,它用這一個:

Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True 

隨着數據庫名稱相同的像你的上下文類。

+0

謝謝拉迪斯拉夫 - 完美的工作。 –

+1

@ ladislav-mrnka我在EF問題上見過很多答案,他們都非常有幫助。謝謝! – edsobo

相關問題