EF中DbContext如何使用自定义数据源,而不是使用app.config中的链接字符串


如题:

之前在EF使用时,一直纠结于APPCONFIG中的配置的连接字符串,不能使用动态链接字符串;


经过对比,DbContext的构造函数中有一个构造函数如下:

        //
        // 摘要:
        //     通过现有连接来连接到数据库以构造一个新的上下文实例。如果 contextOwnsConnection 是 false,则释放上下文时将不会释放该连接。
        //
        // 参数:
        //   existingConnection:
        //     要用于新的上下文的现有连接。
        //
        //   contextOwnsConnection:
        //     如果设置为 true,则释放上下文时将释放该连接;否则调用方必须释放该连接。
        [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
        public DbContext(DbConnection existingConnection, bool contextOwnsConnection);

从该构造函数入手,每次创建一个新的链接,其中 contextOwnsConnection参数是设置为 true,使用完之后释放即可。

具体实现如下:
        //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)
        //使用“LocalDb”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的
        //“com.InstrumentCar.Datas.LocalDb”数据库。
        // 
        //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“LocalDb”
        //连接字符串。
        public LocalDb()
            : base(new SQLiteConnection(Config.Config.getDatabaseConnStr()),true/*"name=LocalDb"*/){}
 
 
在使用时,可按照下列方法使用:
using (LocalDb localdb = new LocalDb())
{
    ...
}





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值