如何为数据库上下文动态设置自定义conn字符串?

时间:2018-06-26 20:47:37

标签: c# .net

我有以下数据库上下文,它是通过VS中的向导自动生成的:

MyEntities : DbContext

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

public MyEntities() : base("name=SecurityApiEntities")
{
}

我需要能够动态设置连接字符串。我该怎么做呢?我看不到此网址中所述的简便方法:

https://msdn.microsoft.com/en-us/library/jj592674(v=vs.113).aspx

1 个答案:

答案 0 :(得分:0)

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

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时都必须执行此操作,您可以创建一个Factory类和方法,该类和方法将根据传入的连接字符串返回DbContext。或者创建一个Partial类,以扩展您的DbContext。创建功能。