关闭

使用EF操作不同数据库

发表于:2014-11-12 09:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:波多尔斯基    来源:51Testing软件测试网采编

  最近一直在和数据库作对。
  从安卓平台上给了我个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了,只需要连接的时候传递一个路径就可以了。
  同理,使用其他类型的数据库也可以这么操作,虽然实际上估计这么用的人不多。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号