小编Gau*_*yak的帖子

EF6 DBContext动态连接字符串

public partial class ProcessContext : DbContext
{
    static ProcessContext()
    {
        Database.SetInitializer<ProcessContext>(null);
    }

    public ProcessContext()
        : base("Name=ProcessCS") //Comes from Config File
    {
    }

    --DBSets 
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
       --Code
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个Multi Tenent DB,我们有3个不同的DB.集中式数据库位于公共位置,不会更改.这是存储其余数据库详细信息的位置.我需要创建连接字符串@ runtime,其中详细信息将来自此集中式数据库.有人可以让我知道如何去做吗?

我尝试使用以下代码,但它无法正常工作.此方法将在此处调用

public ProcessContext()
    : base(nameOrConnectionString: ConnectionString())
{
}

private static string ConnectionString()
{
    SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
    sqlBuilder.DataSource = "XXX";
    sqlBuilder.InitialCatalog = "YYY";
    sqlBuilder.PersistSecurityInfo = true;
    sqlBuilder.IntegratedSecurity = true;
    sqlBuilder.MultipleActiveResultSets = true;

    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
    entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
    entityBuilder.Metadata = "res://*/"; …
Run Code Online (Sandbox Code Playgroud)

entity-framework dbcontext asp.net-mvc-4 .net-4.5

21
推荐指数
2
解决办法
4万
查看次数