开发者社区> 晚来风急> 正文

使用EF操作不同数据库

简介:
+关注继续查看
最近一直在和数据库作对。
  从安卓平台上给了我个SQLite数据库,要求程序能够读取不同的文件。由于字段实在太多,不愿意直接使用原来直接读取datatable的方式来做,手动写映射太痛苦...于是想起来EF来。
  那么问题来了,学习EF的时候,一般都是直接在app.config或者web.config中写入connectionstring,操作一个数据库的时候挺好,但是如果要操作的数据库需要临时指定的话,就比较麻烦,写进去不太合适。
  我的第一个想法,就是使用DbContext构造函数的重载
public MyDbContext ()
:base("ConnectionStringorName")
{
}
  这里面可以接受一个连接字符串或者config文件的name。
  P.S. 使用连接字符串的时候,直接填入就可以,使用name的时候,填入的样子类似"name=myconn"
  使用name不合适了,直接使用连接字符串呢,provider怎么指定?不指定会不会直接用SQL EXPRESS呢?自己想了想,没有再去试了,应该也是可以的,写完再补。
  第二个办法,就是使用Database.Connection设置连接字符串,具体方法如下:
public MyDbContext(string connection)
{
Database.Connection.ConnectionString = GetSqliteString(connection);
}
  这里不调用base里面的方法,对于mysqlite,getsqlitestring如下:
private string GetSqliteString(string connect)
{
return "Data Source=" + connect;
}
  这样就能操作connectionstring了,只需要连接的时候传递一个路径就可以了。
  同理,使用其他类型的数据库也可以这么操作,虽然实际上估计这么用的人不多。
最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据库不一致时启动数据库
本文介绍数据库不一致时如何启动数据库。
13 0
数据库实验一:数据库与数据表定义(1)—— 数据库相关操作
修改服务器默认存储位置:右键点击服务器,选择属性中的数据库设置,修改数据和日志存放位置后点击确定
54 0
数据库-数据库-MySQL(12)- 事务
目录 事务简介 事务操作 查看/设置事务提交方式 提交事务 回滚事务 事务四大特性(ACID) 并发事务问题 脏读 不可重复读 幻读 事务隔离级别
49 0
Linux命令下操作db2数据库
Linux命令下操作db2数据库
301 0
Mogo数据库的简单操作
Mogo数据库的简单操作
161 0
MySql操作(一):数据库的全部基础详细操作与命令
MySql操作(一):数据库的全部基础详细操作与命令
66 0
SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作
原文:SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作   在开发或者测试环境的数据库中,经常会发现有开发或者测试人员误删除表或者数据的情况,对于开发或者测试库,一般都没有安排定时的备份任务去备份数据库,一方面是由于存储资源有限,不太可能给开发或者测试环境准备大量的存储空间,二是必要性不是很强,开发或者测试库的数据库对象变化太多,通过还原备份的方式又有可能冲掉其最近新建的数据库对象。
857 0
+关注
晚来风急
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
ORACLE 10g 数据库体系结构图
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载