如何在代码优先 Entity Framework / 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 Entity Framework ,而且我认为该字符串仅在尝试创建edmx文件时出现(尽管我最终只是删除了它)。 Entities连接字符串已被注释掉,所以我认为它没有被使用。

我希望 Entity Framework 读取“WebsiteConnectionString”,但似乎要使用本地连接字符串,但我什至看不到设置位置。我该如何更改?

最佳答案

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

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

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

10-07 19:42
查看更多