Code First Entity Framework - 更改连接字符串

时间:2011-08-10 13:35:40

标签: c# asp.net-mvc entity-framework ef-code-first

如何在代码第一实体框架/ MVC应用程序中更改连接字符串?我正在尝试将其转移到实际网站,但它忽略了Web配置值,仍然引用了我本地版本的数据库。

以下是我的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" />

我不确定Entities字符串是否有任何相关性,因为我使用Code First实体框架,我认为只有在我尝试创建edmx文件时才会出现(尽管我最终只删除了它)。实体连接字符串已被注释掉,因此我认为它没有被使用。

我希望实体框架能够读取“WebsiteConnectionString”,但它似乎想要使用本地连接字符串,但我甚至看不到它的设置位置。我该如何更改?

1 个答案:

答案 0 :(得分:31)

连接字符串或其名称可以传递给DbContext的构造函数。如果您使用默认构造函数,它将搜索与派生上下文类的名称相同的连接字符串,如果找不到它,则使用此字符串:

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

数据库名称与上下文类相同。