使用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/

时间: 2024-09-14 02:00:05

使用EF操作不同数据库的相关文章

序列-C# EF框架操作Oracle数据库!

问题描述 C# EF框架操作Oracle数据库! EF框架操作Oracle数据库的某张表,表中id用到了序列自增长,怎么在编码中调用他的序列来让他自增长.好像他不会自动识别自增长的. 解决方案 什么叫"在编码中调用他的序列来让他自增长",既然是自动增长,就不要管它好了. 解决方案二: 不可能啊,你仔细检查下oracle的表定义 解决方案三: 你是不是创建表的时候定义错了? 解决方案四: 知道了,因为我没有给他触发器.

如何使用c#操作ACCESS数据库

  如何使用c#操作ACCESS数据库: 手头没有Microsoft Access,如何建立数据库,一切依然简单. 首先引用C:Program FilesCommon FilesSystemadomsadox.dll,该DLL包含ADOX命名空间; 接着引用C:Program FilesCommon FilesSystemadomsjro.dll,该DLL包含JRO命名空间 SxS好问提示:如,导入dll不成功,手动把com组件导入为 .net组件,在用vs.net工具导入 using Syst

使用c#操作ACCESS数据库

  手头没有Microsoft Access,如何建立数据库,一切依然简单. 首先引用C:Program FilesCommon FilesSystemadomsadox.dll,该DLL包含ADOX命名空间; 接着引用C:Program FilesCommon FilesSystemadomsjro.dll,该DLL包含JRO命名空间 SxS好问提示:如,导入dll不成功,手动把com组件导入为 .net组件,在用vs.net工具导入 using System; using System.IO

直接通过ADO操作Access数据库

我在"直接通过ODBC读.写Excel表格文件"和"直接通过DAO读.写Access文件",先后给大家介绍了ODBC和DAO两种数据库访问技术的基本使用方法,这次要给大家介绍的是ADO数据库访问技术的使用方法.ADO(Active Data Object,活动数据对象)实际上是一种基于COM(组件对象模型)的自动化接口(IDispatch)技术,并以OLE DB(对象连接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,利用它可以快速的创建数据库应

Php操作oracle数据库指南-本人原创,经验总结,不能不看

oracle|数据|数据库|原创 本人由于工作关系使用Oracle数据库,发现这里用的人不多,但时常发现有人提的关于PHP操作ORACLE数据库的问题得不到回答,我也曾问过几个,但也无人响应,因此决定把本人在工作中积攒起来的一些技巧.经验奉献出来,希望对使用oracle数据库的人有所帮助.一.配置环境:访问Oracle8以上的数据库需要用到Oracle8 Call-Interface(OCI8).这个扩展模块需要Oracle8 的客户端函数库,因此需要你要连接远程Oracle数据库的话,还要装上

第二部分,BETA2操作ACCESS数据库

access|数据|数据库 朋友们好,总算又有时间了,搞了两天,头都大了!不过,真的是,.NET的东西太多了,简直有一种眼花缭乱的感觉,看来还是需要静下心来慢慢测试!我的学习观点就是多写程序,多练习,你可以不去记忆那些在资料或帮助上能查到的东西,(我就没有去记,即使是名字空间如何写我都是看帮助),但一定要理解了,而如何理解,最直接的方法就是通过程序来把那些东西直接展示在眼前! 好了,不多说了,接着上次的东西,我们继续来看看,如何在.NET中操作数据库(数据库采用ACCESS 2000,至于SQL

.Net中操作MySql数据库的方法

mysql|数据|数据库 这是在VB.net中为连接MySQL中编写的一个类库.你可以使用这个类库直接操作MySql数据库. 在使用这个类库之前,你必须安装 ODBC MYSQL 3.51下载地址:http://www.mysql.com/downloads/api-myodbc-3.51.html Driver ODBC.NET下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=6CCD8427-1017-4F33-A06

操作Oracle数据库实现上传图片到Blob类型的字段出现的问题

oracle|上传|上传图片|数据|数据库|问题 通过使用OleDb操作Oracle数据库,成功实现图片上传到Blob类型的字段,但有时会发生ORA-01036错误的问题,经查询是错误提示为illegal variable name/number,不知道有谁能详细解释illegal variable name/number的意思 Oracle Data Provider for .NETHiI am using ODP.NET (Oracle Data Provider for .NET) in

.Net中操作MySql数据库

mysql|数据|数据库 这是在VB.net中为连接MySql中编写的一个类库.你可以使用这个类库直接操作MySql数据库. 在使用这个类库之前,你必须安装 ODBC MYSQL 3.51下载地址:http://www.mysql.com/downloads/api-myodbc-3.51.html Driver ODBC.NET下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=6CCD8427-1017-4F33-A06