我有以下数据库上下文,它是通过VS中的向导自动生成的:
MyEntities : DbContext
当我转到自动生成的定义时,我看到以下构造函数定义:
public MyEntities() : base("name=SecurityApiEntities")
{
}
我需要能够动态设置连接字符串。我该怎么做呢?我看不到此网址中所述的简便方法:
https://msdn.microsoft.com/en-us/library/jj592674(v=vs.113).aspx
答案 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。创建功能。