4

我修改了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使用设计器,我在哪里手动更新。

回答

2

如果不知道你的上下文类是什么样子,说你的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(); 
} 
1

在MVC中有几件事是基于公约。它比惯例更喜欢配置。按照惯例,这两件事之间应该有联系。的DbContext的类名匹配的连接字符串为它由约定正常工作

  1. 类从继承的DbContext说

    公共类DbPersonContext:的DbContext {...}

  2. 必须有一个连接字符串的名称

相关问题