Entity Framework入门教程:Oracle数据源访问

由于System.Data.OracleClient.dll从.NET Framework4.0之后已被弃用,所以我们无法在.NET Framework高版本中使用。一番搜索之后,发现好多文章提到.NET连接Oracle需要安装客户端,安装驱动,各种配置...感觉无比麻烦。

Oracle Entity Framework使用基本配置

Oracle官方推出了对于.NET的支持【Oracle Data Provider for .NET】,根据我的Visual Studio下载了一个对应版本的组件,安装很简单,没有什么选项。
620582-20170818112208443-404947978.png
安装完之后,可以通过Visual Studio创建个应用,然后来体验ODP.NET。
项目创建之后,选择添加组件【 ADO.NET实体对象模型】
620582-20170818112602131-1321058852.png
跟随向导一路点击,这里我选择数据库先行
620582-20170818112702803-937475017.png
选择【新建一个连接】->选择【Oracle数据源】
620582-20170818112908131-983256412.png
配置数据库库连接属性,我们需要数据库的用户名、密码,连接方式选择EZ连接,然后写上你的数据库所在服务器的ip或者服务器主机名(注:数据库主机名和数据库服务名不是同一个东西),Oracle端口一般默认为1521
620582-20170818113215225-1728901276.png
配置完成后,修改连接串的名字,当然这不是必要的
620582-20170818121016146-1872742719.png
最后选择需要操作的数据库表、存储过程、视图...
620582-20170818121438209-7541445.png
等待vsiual studio将代码自动生成后,即可操作数据库访问

using (var dbContext=new OracleDbContext())
{
    foreach (var item in dbContext.TMODALs)
    {
        Console.WriteLine("{0} {1}",item.C_ORG_CODE, item.C_USR_CODE);
    }
}

Oracle.ManagedDataAccess

在ODP.NET中包含了Oracle.ManagedDataAccess.dll组件,它是.NET连接Oracle的驱动,有了它你不需要再安装Oracle数据库客户端软件就可以连接数据库。你可以通过Nuget直接安装这个dll组件
620582-20170819112925053-1243878833.png
调用代码和其他数据库的写法没什么区别,只要注意连接串中数据库主机名(ip),数据库服务名,账号,密码只要配置好几本不会出什么问题。

 string connectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ZHYW)));Persist Security Info=True;User ID=root;Password=root;";
 using (OracleConnection oracleConnection = new OracleConnection(connectionString))
 {
     oracleConnection.Open();
     string cmdText = "SELECT * FROM TMODAL";
     OracleCommand oracleCommand = new OracleCommand(cmdText,oracleConnection);
     OracleDataReader oracleDataReader = oracleCommand.ExecuteReader();
     if (oracleDataReader.HasRows)
     {
         while (oracleDataReader.Read())
         {
             Console.WriteLine("{0} {1}", oracleDataReader[0], oracleDataReader[1]);
         }
     }
 }

常见的一些错误

server explore 中的连接"*****" 具有相同的身份证明
620582-20170818115842459-932498231.png
这是由于服务器资源管理器中已经存在该名字的连接,你可以通过【视图】->【服务器资源管理器】->【数据库】中把同名连接删除

ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
620582-20170818120410303-1853560790.png
这个有可能是你的数据库服务名写错了,也就是数据库连接串中的SERVICE_NAME

转载于:https://www.cnblogs.com/yangsofter/p/entityframework_oracle.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值