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下载了一个对应版本的组件,安装很简单,没有什么选项。
安装完之后,可以通过Visual Studio创建个应用,然后来体验ODP.NET。
项目创建之后,选择添加组件【 ADO.NET实体对象模型】
跟随向导一路点击,这里我选择数据库先行
选择【新建一个连接】->选择【Oracle数据源】
配置数据库库连接属性,我们需要数据库的用户名、密码,连接方式选择EZ连接,然后写上你的数据库所在服务器的ip或者服务器主机名(注:数据库主机名和数据库服务名不是同一个东西),Oracle端口一般默认为1521
配置完成后,修改连接串的名字,当然这不是必要的
最后选择需要操作的数据库表、存储过程、视图...
等待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组件
调用代码和其他数据库的写法没什么区别,只要注意连接串中数据库主机名(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 中的连接"*****" 具有相同的身份证明
这是由于服务器资源管理器中已经存在该名字的连接,你可以通过【视图】->【服务器资源管理器】->【数据库】中把同名连接删除
ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
这个有可能是你的数据库服务名写错了,也就是数据库连接串中的SERVICE_NAME
Entity Framework入门教程:Oracle数据源访问的更多相关文章
- Entity Framework入门教程:SQLite数据源访问
[环境安装] 可以通过NuGet直接搜索安装SQLite需要用到的组件 或者直接使用程序包管理器控制台 > Install-Package System.Data.SQLite 通过ADO.NE ...
- Entity Framework入门教程: Entity Framework支持的查询方式
Entity Framework支持的查询方式有三种 LINQ to Entities Entity SQL Native SQL [LINQ to Entities] LINQ(语言集成查询)是从V ...
- Entity Framework入门教程(1)---Entity Framework简介
什么是Entity Framework 学习EF的前提:熟练使用Linq和Ado.net,因为在使用EF框架进行开发时,我们大多数情况使用Linq进行查询和操作,而EF的底层实现用的是Ado.net. ...
- Entity Framework入门教程:什么是Entity Framework
Entity Framework简介 Entity Framework是微软提供的一个O/RM(对象关系映射)框架.它基于ADO.NET,为开发人员提供了一种自动化的机制来访问和存储数据库中的数据. ...
- Entity Framework入门教程(8)---预先加载、延迟加载、显示加载
1.预先加载 预先加载:在对一种类型的实体进行查询时,将相关的实体作为查询的一部分一起加载.预先加载可以使用Include()方法实现. 1.加载一个相关实体类型 栗子:使用Include()方法从数 ...
- Entity Framework入门教程(12)--- EF进行批量添加/删除
EF6添加了批量添加/删除实体集合的方法,我们可以使用DbSet.AddRange()方法将实体集合添加到上下文,同时实体集合中的每一个实体的状态都标记为Added,在执行SaveChange()方法 ...
- ASP .NET MVC 之Entity Framework入门教程及源码
本文主要的目的是 1. 说明Entity Framework Power Tools如何使用. 2. Entity Framework 快速门 实验环境: OS: Windows Server 20 ...
- Entity Framework入门教程:创建实体数据模型
下图为一个已经创建好的数据库表关系 实体数据模型的创建过程 在Visual Studio项目中,右键程序集菜单,选择[添加]->[新建项],在[添加新项窗口]中选择[ADO.NET实体数据模型] ...
- Entity Framework入门教程(2)---EF工作流程
EF工作流程 1.EF基本CRUD流程 下边的图就可以很清晰地展示EF的CRUD操作的基本工作流程: 这里做一个EF CRUD操作的简单总结:1.定义模型:这是EF工作的前提,定义模型包括定义领域类( ...
随机推荐
- php接口加密
在实际开发中PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作. 下边简单介绍一下A ...
- .NetCore~TagHelpers标签的使用
回到目录 TagHelpers 能够让服务端代码参与创建和渲染 HTML 元素,让整个View视图看起来只有Html代码,也让前台开发人员开发的页面直接被后台开发人员使用,而不需要重复的书写代码,这种 ...
- JS内置对象学习总结
日期对象: 创建日期对象: var date=new Date();//创建日期对象 设置/返回年份方法: date.getFullYear(); date.setFullYear(); 返回星期的方 ...
- redhat6.4配置yum
redhat6.4配置本地yum 1. 挂载(我喜欢放在/mnt下面) mount -t auto *** /mnt/redhat 或 cp *** /mnt/redhat ...
- 在Linux下安装Oracle12c
其实,对于oracle数据库和oracle实例的安装,借用图形化安装还是比较容易的,只是有个别地方需要特别注意外,其余的默认安装即可: 1.安装前的准备: 启动SSH工具: 先启动倒数第三个(想用图像 ...
- Linux之grep及正则表达式
grep简介 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.通常grep有三种版本grep.egrep(等同于grep -E)和fgrep.egrep为扩展的g ...
- Objective-C MapKit的使用-LBS简单的租车主界面demo
效果 分析 三个view:地图view.车辆信息view.车辆类型选择view 地图view:大头针的摆放,根据不同的种类显示大头针 车辆信息view:根据当前点击的大头针显示对应的车辆信息 车辆类型 ...
- Cubieboard Linaro 搭建超节能监控平台
转载的,不知道原作者是谁.list很好,但我没有全部测试和验证,部分内容或已失效,如有人找到原作者的更新或者最新的心得.请告知. Cubieboard是一款ARM架构的开发板, 1GHz 的 All ...
- Ztree _ 横向显示子节点、点击文字勾选、去除指定元素input的勾选状态
前些天项目需要树结构表现数据,需求ztree就能满足所以直接使用ztree只是踩了些小坑... 1.ztree子节点横向显示(下图): 效果说明:第三级子节点按需求横向显示其他竖向显示,每行最多显示5 ...
- C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 一点感想 很意外的,第一 ...