
引用类库:System.Data.OracleClient.dll命名空间:System.Data.OracleClient
常用类:OracleConnection、OracleCommand、OracleDataAdapter、OracleTransaction、OracleDataReader等
连接字符串:“data source=**user id=**password=**”(注意:可以不指定 provider 驱动)
二OleDb方式
引用类库:System.Data.dll命名空间:System.Data.OleDb
常用类:OleDbConnection、OleDbCommand、OleDbDataAdapter、OleDbTransaction、OleDbDataReader等。
连接字符串:与OracleClient方式相比,要添加一个provider,“provider=MSDAORA.1”
下面是示例,分别用这两种方式实现了相同的功能:连接数据库,并将查询到的数据放到dataSet中。
首先,在本地的$ORACLE_HOME/network/admin/tnsnames.ora中,建立目标数据库的tns; 然后,在命令行环境中执行“tnsping ”,测试新建的tns能否连接目标数据库; 在 sql developer的连接框中,选择新建的tns,输入帐号密码,就可以啦数据库为Oracle,就不要使用EF了。问题已经很明显。“Make sure the provider is registered in the 'entityFramework' section of the application config file”,就是让你看看在App.config文件中的<provider>。
【源文件中的内容如下】:
<entityFramework>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</entityFramework>
按理说,只要将<provider />写成:
<provider invariantName="Oracle.ManagedDataAccess.Client" type="System.Data.OracleProviderServices, EntityFramework.OracleServer" />
之类即可,但是可悲啊!
目前支持EF6的provider有:
(1)Microsoft SQL Server provider
(2)Microsoft SQL Server Compact Edition provider
(3)Devart dotConnect Data Providers【注意】
(4)Firebird provider
(5)Visual Fox Pro porvider
(6)MySQL
(7)PostgreSQL
1、2、4、5、7均可以从NuGget中获取。3、7需要到相应的网站获取。
注意第三个:这个插件就是用于Oracle数据库的,其为第三方插件,由Devart公司开发。但有两大致命缺点:1、收费(是30天免费试用,过了30天要么卸载,要么付款)。2、目前支持的Oracle的最高版本为:Oracle8.2i。
哎!数下流剑客,还是Oracle!!!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)