2015-12-21 44 views
0

我只想将SqlConnectionStringBuilder传入我的dbcontext base()中,但代码不起作用。无法在实体框架DB中的dbcontext中首先创建动态连接

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。

回答

0

为什么要返回

return sqlBuilder.ToString(); 

可能

return entityConnectionStringBuilder.ToString() 

而更换

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

通过

entityConnectionStringBuilder.Provider = "System.Data.SqlClient"; 
+0

非常感谢你@Alexcei 。对于迟到的答复批准感到抱歉。被淘汰。再次谢谢你! –

0

我认为这是你在找什么:

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

您的代码应返回:

entityConnectionStringBuilder.ToString();

+0

我得到这个异常:System.ArgumentException:无法找到所需的.Net框架数据提供程序。它可能没有安装。 –

+0

你在用什么数据库?你确定这个prodiver的名字是正确的吗? –

+0

看到这个:http://stackoverflow.com/questions/16165158/unable-to-find-the-requested-net-framework-data-provider-it-may-not-be-install – 2015-12-21 18:10:18