从 ObjectContext 迁移到 DbContext 代码生成,我意识到生成的上下文类(从 DbContext 继承)没有接收connectionString的构造函数, EntityConnection也没有(就像 ObjectContext 子类一样)。
这是我的应用程序中的一个问题,因为我需要使用运行时生成的连接字符串从具体类型动态实例化我的上下文。
从 ObjectContext 迁移到 DbContext 代码生成,我意识到生成的上下文类(从 DbContext 继承)没有接收connectionString的构造函数, EntityConnection也没有(就像 ObjectContext 子类一样)。
这是我的应用程序中的一个问题,因为我需要使用运行时生成的连接字符串从具体类型动态实例化我的上下文。
在继承 DbContext 的类上,您应该能够指定接受连接字符串的基本构造函数:
public class MyDbContext : DbContext
{
public MyDbContext(string connString)
: base(connString)
{
}
}
您将不得不使用 SQLConnection 构建器:
SqlConnectionStringBuilder connBuilder= new SqlConnectionStringBuilder(dbConnString);
并在您的构造函数中使用它:
MyDbContext dbContext = new MyDbContext(connBuilder.ToString());
这帮助了我:
public MyDatabaseContext():base("name=MyConnectionString")
{
}