LSJ_NHibernate第一章 NHibernate介绍
前言:
说起NHibernate网上资料真不少,但用的人却并不多,说起java的SSH框架大家可能就知道了,这里的H指的就是Hibernate,一款好用的ORM框架,在.net重写了这款好用的框架,名字叫NHibernate.
LSJ_NHibernate项目已开源,觉得有用的帮忙点个星星,非常感谢,地址:https://git.oschina.net/tibos/LSJ_NHibernate
我的NHibernate学习之旅也是从网上找资料开始,在此特别感谢以下两篇博客的博主,想学习的可以去看看,写的非常详细了
NHibernate系列文章一:NHibernate介绍 (丹妮大叔)
NHibernate从入门到精通系列(1)——NHibernate概括 (刘东)
根据项目的需求进行分析,简单的来说我们无非是做了两件事,1.把数据存进去,2.把数据取出来,术语:面向数据编程,我们选用ORM无非是满足需求,高效,规范
这里我把对数据库操作的需求分为4个等级
当你的项目达到第三个等级的时候,你就应该考虑使用ORM框架了,这样不单单是完成任务,还能更高效.
这里我列出学习过程中容易遇到的问题,方便大家更好的学习NHibernate
1.配置文件错误
1 /// <summary> 2 /// 链接信息,初始化NH 3 /// </summary> 4 public static ISessionFactory SessionFactory 5 { 6 get 7 { 8 if (_sessionFactory == null) 9 { 10 var path = HttpContext.Current.Server.MapPath("/bin/hibernate.cfg.xml"); 11 var cfg = new NHibernate.Cfg.Configuration().Configure(path); 12 _sessionFactory = cfg.BuildSessionFactory(); 13 } 14 return _sessionFactory; 15 } 16 }
出错可能
1.配置文件hibernate.cfg.xml没有设置成始终复制,这样项目的bin文件里找不到配置文件
2.配置的数据库链接字符串出错
3.缺少对应驱动的dll,比如mysql就要引用相应的驱动
4.数据库账号的权限不够,NHibernate会自动隐射表,以及生成外键
2.未找到映射文件
出错可能
1.mapp文件没有设置成嵌入的资源
2.mapp里的类型跟实体类或者数据库里的类型不一致
3.联合查询,一对一,一对多,多对一没有关联到数据
出错可能
1.lazy="false" 没有设置成立即加载
初次搭建项目可能比较耗时,但是我觉得这个学习成本是值得的,特别是mapp里的类型,第一次建议不要复制粘贴,当你项目能够正常运行,恭喜你成功了第一步,接下来为大家介绍几款工具,让NHibernate如虎添翼.
1.代码生成器 推荐动软代码生成器,当然根据个人喜好,比如T4....,动软的代码生成器模板默认就支持NHibernate,我根据自己项目需求重写了模板,模板放在项目的DB文件夹下,可以直接生成Mapp,Model,IDAL,DAL,BLL,百度上面有使用教程,非常的简单.
2.sql跟踪器,推荐NHProf.exe 可以记录某个过程中执行的所有sql语句,以及耗时,非常的实用.
比如我的一个关联查询,它会自动记录执行的sql语句,以及参数,耗时
转载于:https://www.cnblogs.com/tibos/p/6201777.html
LSJ_NHibernate第一章 NHibernate介绍相关推荐
- 第一章网络介绍计算题及其解析[计算机网络]
总结一下计算机网络学期课程所学,方便以后的复习和补充. 本文主要是第一章网络介绍计算题部分.需要掌握的知识点如下图. 需要手写记录的笔记pdf和课本pdf可私信. 文章目录 第 ...
- 乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍(可供技术选型时使用)
乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍 RabbitMQ介绍 1.RabbitMQ技术简介 2.RabbitMQ其他扩展插件 2.1监控工具rabbitmq-managemen ...
- 第一章 Oracle介绍
Oracle 10.2 概念 第一章 Oracle介绍 1.Oracle介绍 本章提供了针对Oracle数据库服务器的概述,包含以下主题 l Oracle数据库体系结构 l Oracle数据库特点 l ...
- 学神python全栈学习笔记CMDB系统---第一章 python_cmdb_介绍,项目开始
第一章 python_cmdb_介绍,项目开始 本节所讲内容: 1.1 python cmdb系统介绍与需求分析 1.2 python cmdb数据库建模 1.3 python cmdb前端基础 ...
- 第一章, 介绍:挖掘twitter的数据
mahout_xb的专栏 http://blog.csdn.net/mahout_xb/article/details/7341477 第一章, 介绍:挖掘twitter的数据 分类: data mi ...
- 网易云课堂Web安全工程师课程分享——第一章 Web介绍
第一节 Web介绍 课程回顾: Web是什么? Web发展分为哪几个阶段? Web安全问题发展形势? Web的工作流程? 浏览器是如何工作的? 总结回答: Web指的是World Wide Web,平 ...
- Python(第一章)版本介绍,环境准备及IDLE使用
第一章 本章概览 Python是一种跨平台,开源的免费的.解释型的高级编程语言.近几年发展势头迅猛.应用领域十分广泛,在Web编程.图像处理.黑客编程.大数据处理.网络爬虫和科学计算等领域都能找到Py ...
- Oracle 10.2 概念 第一章 Oracle介绍
Oracle 概念(Oracle 10.2) 1.Oracle介绍 本章提供了针对Oracle数据库服务器的概述,包含以下主题 l Oracle数据库体系结构 l Oracle数据库特点 l Orac ...
- 《应用非线性控制》第一章(完)——介绍 1.3 本书的结构
教材结构 因为非线性控制系统有着更加丰富且复杂的行为,因此它们的分析也相应得变得困难.从数学层面来说,困难来自于两个方面:1. 首先非线性方程不像线性方程,它们没有解析解,因此我们不能直接通过非线性方 ...
最新文章
- 有关 drop delete truncate 问题
- 当谷歌员工来到新公司的那一天,发现原来公司什么都没有
- 无界阻塞队列 LinkedBlockingQueue 原理探究
- X-007 FriendlyARM tiny4412 u-boot移植之内存初始化
- python代码示例下载-Python实现多线程下载脚本的示例代码
- Aspx页面中直接编写javascript脚本
- 【推荐系统】推荐系统主流召回方法综述
- alter database open resetlogs
- leetcode解题记录(二)
- 程序员的算法课(20)-常用的图算法:最小生成树(MST)
- 使用SQL数据库在Python中执行CRUD操作
- Mysql5.6.x版本半同步主从复制的开启方法
- linux小技巧--vim下多行注释和取消多行注释
- Weblogic的安装与卸载
- Linux下PCI设备驱动程序开发
- USB转RS422/485/232串口线异常问题记录
- IP-Guard申请外发流程说明
- python并行编程 - GPU篇
- pythonrefprop怎么设置_Refprop调用Excel设置步骤
- 如把联想电脑计算机图标放在桌面上,联想的电脑应用怎么放到桌面图标-?(图)...
热门文章
- python中csv库写入表头_python的pandas工具包,保存.csv文件时不要表头的实例
- vfp 修改本机时间_时间旅行调试
- linux slf4j找不到,slf4j+log4j2在tomcat8 下无日志输出
- linux包含绝对路径头文件,linux-kernel - 访问用户空间内存访问函数(如access_ok(),get_from_user())需要包含的头文件的确切路径。 - 堆栈内存溢出...
- python是动态_Python中的对象和动态性 [菜鸟的理解,高手莫入]
- python描述符与实例属性_Python 中的属性访问与描述符
- npm依赖管理peerDependencies
- 代码是写给人看的还是写给机器看的?
- Android的Broadcase的使用(读取短信和创建通知)
- yum install php72w,yum 安装 php72w-pecl-imagick 报错