有没有办法先在数据库中更改连接字符串?

Jam*_*mes 14 entity-framework database-first

我有几个数据库,它们的架构是相同的.当我使用数据库优先时,在创建edmx文件时指定连接字符串.我想知道,有没有办法改变连接字符串?这是,所以我可以选择要运行的数据库.Thx提前!

rjc*_*ago 29

我们不在web.configs中存储连接字符串,因此接受的解决方案对我们不起作用.如果您只是尝试通过基本DbContext构造函数提供连接字符串,您将获得以下异常:

如果在Code First模式下使用,使用T4模板为Database First和Model First开发生成的代码可能无法正常工作.要继续使用Database First或Model First,请确保在执行应用程序的配置文件中指定了Entity Framework连接字符串.要使用从Database First或Model First生成的这些类,使用Code First添加任何其他配置,使用属性或DbModelBuilder API,然后删除引发此异常的代码.

要解决此问题,请按如下所示创建上下文的部分类,并使用其他EF元数据格式化连接字符串(其中MyContext是您的 上下文型号名称(例如,您的型号名称为MyModel.edmx,而MyContext下面的代码将替换为MyModel使用的所有三个扩展名.csdl,.ssdl,.msl)):

public partial class MyContext
{
    public MyContext(string connStr)
        : base(string.Format(@"metadata=res://*/MyContext.csdl|res://*/MyContext.ssdl|res://*/MyContext.msl;provider=System.Data.SqlClient;provider connection string='{0}'", connStr))
    {
    }
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*ell 3

更改 web.config 文件中的连接字符串。

  <connectionStrings>
    <add name="SandBoxEntities" connectionString="metadata=r... />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我缩写了实际的连接字符串,因为它并不重要——只是想让您了解在 web.config 文件中查找什么内容。

您还可以通过编程方式更改连接字符串。查看示例 16.2。以编程方式修改 EntityConnectionString