首页 新闻 会员 周边 捐助

.net EF运行时动态更改数据库连接

0
悬赏园豆:10 [已解决问题] 解决于 2016-01-06 17:34

public class WXCountInfoContext:DbContext
{
public WXCountInfoContext():base("name=web.config中配置的连接字符串")
{
}
public virtual DbSet<WXCountInfo> WXCountInfo { get; set; }
}

MVC中使用EF,数据库上下文的创建通常是上面这样,那我在程序运行中需要动态更改连接该如何做。public WXCountInfoContext():base("name=web.config中配置的连接字符串")//不这样初始化,要想在运行中更改或新建一个上下文代码怎么写。

 

请高手稍作指点,本人刚学,谢谢了

小小财经的主页 小小财经 | 初学一级 | 园豆:1
提问于:2015-10-30 10:06
< >
分享
最佳答案
0

DBContext应该有多个构造函数,其中一个是可以传入连接的。

public class WXCountInfoContext:DbContext
{
public WXCountInfoContext():base("name=web.config中配置的连接字符串")
{
}

public WXCountInfoContext(string NameOrConnectionString)
{
    此处调用基类构造函数即可。
}
public virtual DbSet<WXCountInfo> WXCountInfo { get; set; }
}

 

收获园豆:10
爱编程的大叔 | 高人七级 |园豆:30844 | 2015-10-30 10:13

<add name="ModelEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;port=3306;server=localhost;user id=root;password=root;database=qorder&quot;" providerName="System.Data.EntityClient" />

配置文件中的有这三个属性,那我在构造函数中也只能传入的是connectionString吧,providerName怎么设置,

小小财经 | 园豆:1 (初学一级) | 2015-10-30 10:26

@无才不肖生: providerName可以和connectionString写一起,传入Context吧

jello chen | 园豆:7336 (大侠五级) | 2015-10-30 17:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册