在Entity框架DBcontext中使用SqlConnectionStringBuilder和EntityConnectionStringBuilder时参数无效

时间:2015-12-21 14:21:52

标签: c# entity-framework

这是我过去的question

的延续

基本上,我将首先使用实体​​框架DB连接到具有相同表结构的多个数据库。我将循环并通过参数传递数据库目录。 (数据库名称在表中)。我在base()中得到一个无效的参数错误。我甚至不确定我是否正确这样做,因为我之前没有使用过这些构建器类。 这是我的代码:

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

    public static MirrorBranchesEntities ConnectToSqlServer(string catalog)
    {
        var sqlBuilder = new SqlConnectionStringBuilder
        {

            DataSource = "(local)",
            InitialCatalog = catalog,
            PersistSecurityInfo = true,
            IntegratedSecurity = true,
            MultipleActiveResultSets = true,

            UserID = "sa",
            Password = "Qwer0987"
        };

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

        return new MirrorBranchesEntities(sqlBuilder.InitialCatalog);
    }

1 个答案:

答案 0 :(得分:0)

问题可能在这里:

IntegratedSecurity = true,
//...
UserID = "sa",
Password = "Qwer0987"

您必须通过IntegratedSecurityUserID决定是否要使用Password(通过Windows身份验证进行身份验证)或SQL Server身份验证。