Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为db上下文动态设置自定义conn字符串?_C#_.net - Fatal编程技术网

C# 如何为db上下文动态设置自定义conn字符串?

C# 如何为db上下文动态设置自定义conn字符串?,c#,.net,C#,.net,我有以下通过VS中的向导自动生成的db上下文: MyEntities : DbContext 当我转到自动生成定义时,我会看到以下构造函数定义: public MyEntities() : base("name=SecurityApiEntities") { } 我需要能够动态设置连接字符串。我该怎么做呢?我看不到此url中描述的立即执行此操作的方法: 如果出于某种原因,无法在配置文件中保留连接字符串,则可以执行以下操作: var entityBuilder = new EntityConn

我有以下通过VS中的向导自动生成的db上下文:

MyEntities : DbContext
当我转到自动生成定义时,我会看到以下构造函数定义:

public MyEntities() : base("name=SecurityApiEntities")
{
}
我需要能够动态设置连接字符串。我该怎么做呢?我看不到此url中描述的立即执行此操作的方法:


如果出于某种原因,无法在配置文件中保留连接字符串,则可以执行以下操作:

var entityBuilder = new EntityConnectionStringBuilder();

// use your ADO.NET connection string
entityBuilder.ProviderConnectionString = conString;

// Set the Metadata location.
entityBuilder.Metadata = @"res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl";
var dbContext = new DbContext(entityBuilder.ConnectionString);

为了避免每次需要DbContext时都必须这样做,可以创建一个工厂类和方法,该类和方法将根据传入的连接字符串返回DbContext。或者创建一个分部类,用create函数扩展DbContext。

传递给基构造函数的值可以是连接字符串。