visual studio 2017使用NHibernate4.0连接oracle11g数据库
之前一直是公司用NHibernate2.1来做项目,连接oracle 10g的数据库,配置NHibernate的东西都是以前的同事做好了的,也怪自己太懒了,没尝试过配置这个东西,虽然一直在使用NHibernate做项目,前几天突然有想法想用NHibernate自己做一个项目,才发现配置一个NHibernate并没有想象中的简单,前前后后大概花了五天时间,也算是功德圆满,终于成功了!另外,网上找到的关于NHibernate的资料,大多数都是配置sql server数据库的,关于oracle这方面的资料也是实在是少,以免大家少走弯路,写个关于oracle的配置文章!
开发环境: visual studio 2017 Pro+oracle 11g(64bit)+NHibernate 4.0.0.4000
运行环境: windows 10 Pro (64bit)
一、前言
NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。
在项目中安装NHibernate 4,我使用的是NuGet下载安装到我的项目中的;
项目结构:

NuGet安装NHibernate
第一步

第二步,在浏览下输入你要添加的引用,在要添加引用的项目上打上勾

二、oracle配置
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="NHibernateConfig">
<!--此处需要使用oracle公司官网提供的客户端驱动[我使用的版本为:32bit的ODTwithODAC112012.zip],微软framework4.0之后就移除了oracle连接dll-->
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<!--配置连接Oracle数据库字符串-->
<property name="connection.connection_string">
User ID=informix;Password=gmgl;Data Source=glxt
</property>
<!--输出所有SQL语句到控制台-->
<property name="show_sql">true</property>
<!--dialect属性支持的方言选项值-->
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<!--将Hibernate查询中的符号映射到SQL查询中的符号-->
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<mapping assembly="informix.Model" /><!--此处指向的是项目Model层的程序集-->
</session-factory>
</hibernate-configuration>
安装好NHibernate之后,把E:\informix\packages\NHibernate.4.0.0.4000\ConfigurationTemplates下的Oracle.cfg.xml模板拷出来,然后放到你的Bin文件夹下,配置文件内容,如上,
特别需要注意的是属性:
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
属性dialect的值NHibernate.Dialect.Oracle10gDialect可以连接 oracle 10g,也可以连接oracle 11g的数据库,这点跟java的Hibernate是一样的
更多的属性配置见链接 http://www.cnblogs.com/siyunianhua/p/6794016.html
三、 Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio(简称ODTwithODAC)安装与visual studio 2017通过客户端连接数据库
ODAC简介
ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及函数,以在应用程序中建立连接。也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的、最小的数据库应用程序。 我使用的是32位的ODAC,如下
ODAC 11.2 第 2 版和 Oracle Developer Tools for Visual Studio (11.2.0.1.2) |
![]() |
下载文件 | |
| ODTwithODAC112012.zip 276 MB(289670995 字节) | ||
| ODAC 安装说明 | ||
|
下载包括 |
||
![]() |
Oracle Developer Tools for Visual Studio 11.2.0.1.2 | |
![]() |
Oracle Data Provider for .NET 4 11.2.0.1.2 | |
![]() |
Oracle Data Provider for .NET 2.0 11.2.0.1.2 | |
![]() |
Oracle Providers for ASP.NET 4 11.2.0.1.2 | |
![]() |
Oracle Providers for ASP.NET 2.0 11.2.0.1.2 | |
![]() |
Oracle Database Extensions for .NET 4 11.2.0.1.2 — 仅用于升级 | |
![]() |
Oracle Database Extensions for .NET 2.0 11.2.0.1.2 — 仅用于升级 | |
![]() |
Oracle Provider for OLE DB 11.2.0.1.0 | |
![]() |
Oracle Objects for OLE 11.2.0.1.0 | |
![]() |
Oracle Services for Microsoft Transaction Server 11.2.0.1.0 | |
![]() |
Oracle ODBC Driver 11.2.0.1.0 | |
![]() |
Oracle SQL*Plus 11.2.0.1.0 | |
![]() |
Oracle Instant Client 11.2.0.1.0 | |
到oracle 官网下载一个oracle 11g对应64位的ODAC安装包,安装好之后,要让这个客户端能连接上数据库
把 客户端下的 product\11.2.0\client_1\Network\Admin\Sample下的两个文件 sqlnet.ora 和 tnsnames.ora,复制到它的上一层文件夹下,如图,

<一>

用记事本打开Admin下的 tnsnames.ora文件,修改端口为1521,修改实例名,和localhost,如图

修改了完之后,重启计算机。
使用visual studio 2017 通过oracle客户端连接数据库
打开工具/连接数据库

选择oracle数据库,然后确定

弹出下面那个文本框,输入你的数据库连接信息之后,点击测试链接,提示成功之后,就可以了

一切准备就绪之后,你需要在NHibernate的配置处理类中添加Oracle.DataAccess引用,然后一切都大功告成了! 资料:
http://www.cnblogs.com/lhking/p/3930711.html
http://blog.csdn.net/fjfdszj/article/details/6637998
https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/Driver/OracleManagedDataClientDriver.cs
如果有任何疑问,可以联系我的qq:364131167
visual studio 2017使用NHibernate4.0连接oracle11g数据库的更多相关文章
- 在Visual studio 2017中使用EF6连接MySQL
在Visual studio 2017中使用EF6连接Mysql ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) ...
- Visual Studio 2017 Android 调试无法连接到虚拟机
输出窗口输出如下: 1>Starting deploy 4.5" KitKat (4.4) HDPI Phone ... 1>Starting emulator 4.5" ...
- Visual Studio 2017 连接Oracle
VS 2017 连接 Oracle 12 因为Visual Studio自带的数据文件已经不能支持超过10g以上的了,所以需要另外 下载插件 本机环境 宿主机的环境:win7,Visual Studi ...
- 微软推出ASP.NET Core 2.0,并支持更新Visual Studio 2017
微软推出ASP.NET Core 2.0的一般可用性,并发布.NET Core 2.0.该公司还推出了其旗舰集成开发环境(IDE)的更新:Visual Studio 2017版本15.3和Visual ...
- 在Visual Studio 2017中,.NET(C#)通过Oracle.ManagedDataAccess来连接Oracle数据库
C#如何通过Oracle.ManagedDataAccess来连接Oracle数据库 1.先创建一个项目,鼠标右击项目中的引用,再点击管理NuGet程序包(也可以先下载dll文件,再选添加引用),在搜 ...
- 基于visual studio 2017 以及cubemx 搭建stm32的开发环境(0)
(1)安装visual studio 2017 官网下载安装即可 (2)安装visual GDB 链接:https://pan.baidu.com/s/1TgXI1BRQLAWiWlqCcIS9TA ...
- Visual Studio 2017正式版发布全纪录
又是一年发布季,微软借着Visual Studio品牌20周年之际,于美国太平洋时间2017年3月7日9点召开发布会议,宣布正式发布新一代开发利器Visual Studio 2017.同时发布的还有 ...
- Visual Studio 2017 通过SSH 调试Linux 上.NET Core
Visual Studio 2017 通过SSH 调试Linux 上.NET Core 应用程序. 本文环境 开发环境:Win10 x64 Visual Studio 2017 部署环境:Ubuntu ...
- Visual Studio 2017 Enterprise (15.3)
版本15.3更新在用户离线下载时更加人性化,包含了进度显示,下载出错可以输入R,进行下载的重新尝试,并在当前下载框下继续下载为完成的作业,结合 --layout 参数的离线文件的检查和修复,并且在下载 ...
随机推荐
- C++ 11 创建和使用 shared_ptr
shared_ptr 的类型是C + +标准库中一个聪明的指针,是为多个拥有者管理内存中对象的生命周期而设计的.在你初始化一个 shared_ptr 后,你可以复制它,把函数参数的值递给它,并把它分配 ...
- Django---ORM操作大全
前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MyS ...
- Spring Boot干货系列:(三)启动原理解析
Spring Boot干货系列:(三)启动原理解析 2017-03-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说 ...
- jave web 开发中 遇到修改不生效的几部方法 总结
在web开发中经常遇到修改文件之后没有正确被加载的情况 1.重启服务器 2.结束多余 javaw.exe 进程 3.删除web容器下的缓存文件 work 4. ctrl+f5 强制刷新缓存,如果是 ...
- Permission denied (publickey). fatal: The remote end hung up unexpectedly 解决办法
这两天学习git的时候,在本地创建了一个库,同时自己在GitHub上面也创建了一个库,照着廖老师的教程一步一步走到了push的环节突然出现了这样的错误: [zhangxiyu@localhost le ...
- 未能加载文件或程序集Office,Version=11.0.0.0
关于"未能加载文件或程序集“Office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个 ...
- 如何设置电脑的固定IP地址
大家在上网时电脑的IP地址往往都是自动选择的,但在局域网内有时会方便共享文件和监控流量等操作时需要固定的IP地址.下面将简单介绍如何手设置电脑的固定IP地址. 百度经验:jingyan.baidu.c ...
- 【Visual Studio】解决方案未保存,请先保存你的解决方案,然后再管理Nuget包
上网下的Demo,文件夹中没有.sln文件,用VS打开.csproj文件来打开方案.此时可能因为一些引用问题想打开Nuget包管理器,会弹出如下提示: 解决方案未保存,请先保存你的解决方案,然后再管理 ...
- C语言 · 运用结构体的排序方法
之前遇到排序只想着最原始的方法,诸如冒泡,选择,快速排序等等,刚刚跟大牛学会了结构体的方法来排序,这样的话以后再也不用怕成绩统计.名次排序之类的题目了. 首先头文件(基于大牛的方法,本人之后做题喜欢引 ...
- shell命令之根据字符串查询文件对应行记录
显示xxx字符串对应的行数,并向前打印3行,向后打印2行,查找对应文件为filename.txt 命令:grep -n 'xxx' -A3 -B2 --color=auto filename.txt ...

