NHibernate Step By Step(10)-常用的配置属性
概况
(1)connection.driver_class 数据访问驱动
(2)dialect sql方言
(3)connection.connection_string 数据连接字符串
(4)connection.provider 数据库连接驱动
(5)connection.release_mode 连接释放模式 (6)default_entity_mode 实体表现模式
1.connection.driver_class
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>\
用于配置数据访问驱动,
1若.net类库中有的,则用强类型,如SqlConnection,OldeConnection,OdbcConnection,OracleConnection. 如
/// <summary>/// Creates an uninitialized <see cref="IDbConnection" /> object for /// the SqlClientDriver./// </summary>/// <value>An unitialized <see cref="System.Data.SqlClient.SqlConnection"/> object.</value>public override IDbConnection CreateConnection(){return new SqlConnection();}/// <summary>/// Creates an uninitialized <see cref="IDbCommand" /> object for /// the SqlClientDriver./// </summary>/// <value>An unitialized <see cref="System.Data.SqlClient.SqlCommand"/> object.</value>public override IDbCommand CreateCommand(){return new System.Data.SqlClient.SqlCommand();}
2.若内置没有提供的,第三方提供的,则采用动态反射方式实现
如
public MySqlDataDriver() : base("MySql.Data","MySql.Data.MySqlClient.MySqlConnection","MySql.Data.MySqlClient.MySqlCommand"){}
2.dialect(sql方言)
既根据不同数据库,会采用不同了sql语句,如标准的分页查询就是用dialect的GetLimitString方法实现的
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
3.数据连接字符串
(1)connection.connection_string
<property name="connection.connection_string">Data Source=CLINGINGBOY-PC\SQLEXPRESS;Initial Catalog=nhibernate;Integrated Security=True</property>
(2)connection.connection_string_name
从config中connectionStrings节点中获取连接字符串
4.数据库连接驱动
默认是实现IConnectionProvider接口的NHibernate.Connection.DriverConnectionProvider
<property name="connection.provider">NHibernate.Test.DebugConnectionProvider, NHibernate.Test</property>
实现Driver用户创建数据库驱动
public override IDbConnection GetConnection(){log.Debug("Obtaining IDbConnection from Driver");IDbConnection conn = Driver.CreateConnection();try{conn.ConnectionString = ConnectionString;conn.Open();}catch (Exception){conn.Dispose();throw;}return conn;}
public virtual void CloseConnection(IDbConnection conn){log.Debug("Closing connection");try{conn.Close();}catch (Exception e){throw new ADOException("Could not close " + conn.GetType() + " connection", e);}}
5.连接释放模式connection.release_mode
默认为auto,不必修改造成其他的错误
ConnectionReleaseMode releaseMode;if ("auto".Equals(releaseModeName)){releaseMode = ConnectionReleaseMode.AfterTransaction; //transactionFactory.DefaultReleaseMode;}else{releaseMode = ParseConnectionReleaseMode(releaseModeName);}
private static ConnectionReleaseMode ParseConnectionReleaseMode(string name){switch (name){case "after_statement":throw new HibernateException("aggressive connection release (after_statement) not supported by NHibernate");case "after_transaction":return ConnectionReleaseMode.AfterTransaction;case "on_close":return ConnectionReleaseMode.OnClose;default:throw new HibernateException("could not determine appropriate connection release mode [" + name + "]");}}
6.实体表现模式(default_entity_mode)
见此http://www.clingingboy.cn/article/53.aspx
NHibernate Step By Step(10)-常用的配置属性相关推荐
- 桃子叔叔为您解析webpack-dev-server主要的配置属性
webpack-dev-server 配置属性 众所周知webpack-dev-server有三种配置方式,有配置文件方式.package.json方式和纯node的API实现方式,桃子叔叔推荐使用的 ...
- Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
写在前面: 最近准备写Enterprise Library Step By Step的系列文章,对于每一个应用程序块,我都会用入门篇,进阶篇,剖析篇三篇文章去写. 在入门篇里会详细介绍应用程序块的使用 ...
- NHibernate Step by Step:序篇 (转)
原文出处:http://www.cnblogs.com/abluedog/archive/2006/04/15/375676.html 原文作者:abluedog 很久以前,你可能习惯了connect ...
- 数据库设计Step by Step (10)——范式化
引言:前文(数据库设计Step by Step (9)--ER-to-SQL转化)讨论了如何把ER图转化为关系表结构.本文将介绍数据库范式并讨论如何范式化候选表.我们先来看一下此刻处在数据库生命周期中 ...
- Enterprise Library Step By Step系列(十一):异常处理应用程序块——入门篇
Enterprise Library Step By Step系列(十一):异常处理应用程序块--入门篇 作者:Terrylee 一.概述 使开发人员和决策人员能够针对发生在企业应用程序体系结构层的异 ...
- eeglab脑电数据预处理:step by step
文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注. 学脑电的小伙伴对 matlab 软件和 eeglab 插件一定不会陌生,它们是脑电数据分析过程中的重要法宝.在对脑电数据进行分析处理之前需 ...
- GoFrame Step by Step Demo - P1
GoFrame Step by Step Demo P1 框架说明文档 GFTool 安装 Web框架学习 文章目录 GoFrame Step by Step Demo P1 参考Demo 记录 安装 ...
- RDL(C) Report Design Step by Step
RDL(C) Report Design Step by Step 1: DrillThrough Report 前一段时间,发了几篇关于RDLC报表的随笔,由于这些随笔中没有关于报表设计方面的内容, ...
- 【Step By Step】将Dotnet Core部署到Docker下
一.使用.Net Core构建WebAPI并访问Docker中的Mysql数据库 这个的过程大概与我之前的文章<尝试.Net Core-使用.Net Core + Entity FrameWor ...
最新文章
- java soa例子_哪位大牛能举个实例讲下SOA与传统架构的区别?
- 如何通过三视图判断立方体个数_如何通过接触角判断疏水性?疏水性与亲水性的区别...
- 美团外卖商家端视频探索之旅
- SSH连接慢与反向解析(转)
- matplotlib Artist 教程
- Java魔法堂:注解用法详解——@SuppressWarnings(转)
- javascript div 没id_javascript原生自定义轮播图组件
- TrackBar问题,有高人能解决吗?
- 专题四——线段树、树状数组
- C# Conditional(方法,属性的忽略)使用
- java callback_java——回调机制(callback)
- Redfish 验证工具: Redfish Service Validator (OData CSDL)
- 深度学习面试题集锦【1】
- 带你了解电机驱动板的四大分类
- 修11代12代希捷坏道
- Linux环境下几种常用的文件系统
- npm 删除已安装的依赖
- ts服务器cal文件激活,付费网课ts文件如何解密?m3u8无IV信息
- Java项目:JSP宠物店管理系统
- nvme linux raid,04-第4章-NVMe VROC KeyVROC NVMe RAID