1.简介
在工作中遇到一个问题。项目有三个数据库(三个数据库表结构一样),用户可以选择使用哪个数据库。其实就是动态切换数据库连接。
2.EntityFramework For Mysql
先来简单的介绍下mysql使用EntityFramework来操作数据库。
直接上代码:
(1).先建个项目,安装mysql,entityframework相关包
nuget安装(2).建立实体和对应的数据库表
人员实体文章实体
见表语句
(3).编写数据库连接字符串,编写context实体
数据库连接字符串context实体类
这样就可以来使用Entityframeorok来访问mysql数据了。
(4).简单测试
测试代码person测试结果
article测试结果
3.动态切换数据库
(1).在建一个blog1数据库,表如blog数据库。
两个数据库(2).对context进行改造
context改造后(3).改造测试
测试blog1 blog1表 blog blog表4.为什么可以直接传链接字符串
从DbContext构造函数的方法签名可以看出端倪。
DbContext构造函数
可以看出我们传数据库连接字符串名字和直接传数据库连接字符串都是可以的。EntityFramework会去做判断,如果是name,再去配置文件取数据库连接字符串和providerName。如果是数据库连接字符串则直接拿来用。