如何在代码第一实体框架/ 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="Data Source=192.168.1.43;Initial Catalog=Website.Models.IntranetApplication;User Id=[UserName];Password=[Password];MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
我不确定Entities字符串是否有任何相关性,因为我使用Code First实体框架,我认为只有在我尝试创建edmx文件时才会出现(尽管我最终只删除了它)。实体连接字符串已被注释掉,因此我认为它没有被使用。
我希望实体框架能够读取“WebsiteConnectionString”,但它似乎想要使用本地连接字符串,但我甚至看不到它的设置位置。我该如何更改?
答案 0 :(得分:31)
连接字符串或其名称可以传递给DbContext
的构造函数。如果您使用默认构造函数,它将搜索与派生上下文类的名称相同的连接字符串,如果找不到它,则使用此字符串:
Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True
数据库名称与上下文类相同。