加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何更新实体框架连接字符串

发布时间:2020-12-16 09:54:07 所属栏目:asp.Net 来源:网络整理
导读:我修改了web.config连接字符串.但是,在调试期间,我仍然看到旧的连接字符串. 所以,我已经评论(并删除)了旧的连接字符串,但是,并通过服务器资源管理器添加了一个新的连接资源.在服务器资源管理器的左侧面板上通过向导测试连接时,它表示已连接. 在关注此向导后,
我修改了web.config连接字符串.但是,在调试期间,我仍然看到旧的连接字符串.

所以,我已经评论(并删除)了旧的连接字符串,但是,并通过服务器资源管理器添加了一个新的连接资源.在服务器资源管理器的左侧面板上通过向导测试连接时,它表示已连接.

在关注此向导后,当我访问web.config时,我没有看到新的连接字符串.

问题:我怀疑,我没有按照添加连接字符串的步骤 –
如何从设计器添加或更新连接字符串(在设计器属性面板中,编辑是灰色的,输出类型是构建到程序集,右键单击只提供添加实体等选项,删除字符串和运行应用程序,不提示连接字符串向导)

下面是字符串 –

<connectionStrings><add name="MaintRecordsDB_v1" connectionString="metadata=res://*/Models.DB.Model.csdl|res://*/Models.DB.Model.ssdl|res://*/Models.DB.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxx.sample.net;initial catalog=MainDB;user id=maintRoot;password=hidden;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /><add name="MainDBentities" connectionString="metadata=res://*/Models.DB.Model.csdl|res://*/Models.DB.Model.ssdl|res://*/Models.DB.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=windflower.arvixe.com;initial catalog=MX_Dashboard;user id=maintRoot;password=hidden;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

编辑问题2:如何为例如添加另一个EF连接字符串MaintDB2使用设计器,我在哪里手动更新.

解决方法

在不知道你的上下文类是什么样的情况下,比如你的DbContext类,如果它是生成的并且假设它是部分的,你可以尝试使用一个以命名连接字符串作为参数的构造函数向它添加另一个部分类部分.

首先在app.config / web.config中添加一个命名连接:

<connectionStrings>
...
<add name="MyOtherConnection" connectionString="metadata=res://*/blahblahblah;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=ABunchOfOtherStuff;"
  providerName="System.Data.EntityClient" />
</connectionStrings>

然后使用构造函数在另一个(非生成的)文件中添加匹配的部分类以获取连接字符串名称:

// the class name must match the name of your existing context
public partial class MyContext : DbContext
{
    public MyContext(string connectionStringName) : base("name=" + connectionStringName)
    {
    }
}

然后通过传递连接字符串的名称来使用您的上下文,由一些无用的代码演示:

// ...
using (var context = new MyContext("MyOtherConnection"))
{
   var id = 1;
   var collection = context.MyEntities.Where(a => a.ID == id).ToList();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读