无法首先在实体框架DB中的dbcontext中创建动态连接

时间:2015-12-21 17:29:33

标签: c# entity-framework

我只想将SqlConnectionStringBuilder传递给我的dbcontext base(),但代码无效。

public MirrorBranchesEntities(string db)
        : base(ConnectToSqlServer(db))
    {
    }

    public static string ConnectToSqlServer(string catalog)
    {
        var sqlBuilder = new SqlConnectionStringBuilder();
        sqlBuilder.DataSource = "(local)";
        sqlBuilder.InitialCatalog = catalog;
        sqlBuilder.PersistSecurityInfo = true;
        sqlBuilder.IntegratedSecurity = false;
        sqlBuilder.MultipleActiveResultSets = true;             
        sqlBuilder.UserID = "sa";
        sqlBuilder.Password = "Qwer0987";

        var entityConnectionStringBuilder = new EntityConnectionStringBuilder();
        entityConnectionStringBuilder.Provider = "System.Data.EntityClient";
        entityConnectionStringBuilder.ProviderConnectionString = sqlBuilder.ConnectionString;
        entityConnectionStringBuilder.Metadata = "res://*/MirrorBranches.csdl|res://*/MirrorBranches.ssdl|res://*/MirrorBranches.msl";

        return sqlBuilder.ToString();
    }

换句话说,我想转此

"name=" + connectionStringName + "connectionString=metadata=res://*/MirrorBranches.csdl|res://*/MirrorBranches.ssdl|res://*/MirrorBranches.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=" + db + ";user id=sa;password=Qwer0987;MultipleActiveResultSets=True;App=EntityFramework" providerName=System.Data.EntityClient"

将sql连接字符串构建器放入我的dbcontext。

2 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西:

https://msdn.microsoft.com/en-us/library/bb302786%28v=vs.110%29.aspx

您的代码应该返回:

entityConnectionStringBuilder.ToString();

答案 1 :(得分:0)

你回来的原因

return sqlBuilder.ToString();

可能是

return entityConnectionStringBuilder.ToString()

并替换

entityConnectionStringBuilder.Provider = "System.Data.EntityClient";

通过

entityConnectionStringBuilder.Provider = "System.Data.SqlClient";
相关问题