entity framework for mysql_EntityFramework For Mysql 动态切换数据源

1.简介

在工作中遇到一个问题。项目有三个数据库(三个数据库表结构一样),用户可以选择使用哪个数据库。其实就是动态切换数据库连接。

2.EntityFramework For Mysql

先来简单的介绍下mysql使用EntityFramework来操作数据库。

直接上代码:

(1).先建个项目,安装mysql,entityframework相关包

366c5b33791fa559e6446ac0eb80f5f5.png

(2).建立实体和对应的数据库表

4b2835c2c714f302af26f30b185a1b2b.png

5915b940fdddd4fa2646b07285bdc643.png

d804ed261cedfb8fff488a3060071ba4.png

(3).编写数据库连接字符串,编写context实体

238901dafa7d1aea6edabaefcb73f6dd.png

790ca94050a5df8eddcba6aa9e2caf09.png

这样就可以来使用Entityframework来访问mysql数据了。

(4).简单测试

d41bd5aab33b1c9464ca69a27dab470b.png

691affa154abaef1c8faf84f8e1fc0c8.png

9b12d88543c0d19901059f5ddb6bf4d9.png

3.动态切换数据库

(1).在建一个blog1数据库,表如blog数据库。

b9eecd75c60ffc5f6c6416c4f3b35507.png

(2).对context进行改造

749c2228cd597d28be8508b40b7df0cd.png

(3).改造测试

21b8bfda37a285642807b743138a8844.png

dd9a0ef93c04a1d0814843381172ef03.png

4583f7dc7ec27bdb2fc1f203fec40aa4.png

ad5589a1d4f2c3e21fd5c229449d6ba2.png

4.为什么可以直接传链接字符串

从DbContext构造函数的方法签名可以看出端倪。

dc5c4b162d393e1b31c9cbca7f938623.png

可以看出我们传数据库连接字符串名字和直接传数据库连接字符串都是可以的。EntityFramework会去做判断,如果是name,再去配置文件取数据库连接字符串和providerName。如果是数据库连接字符串则直接拿来用。

5.遇到的坑

其实EntityFramework对mysql的支持并不是很好,还有些bug。我在进行以上实验的时候遇到了一个问题。当我直接将数据库连接字符串的传到父类的构造函数时,报了: Keyword not supported:'port'错误。经过一番查找,最终找到三个方案:https://stackoverflow.com/questions/45217166/c-sharp-entity-framework-keyword-not-supported-port。

遇到坑的童鞋们可以去看下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值