nHibernate Mapping By Code - Introduction

nHibernate 3.2新增了一种mapping by code的映射策略,很有意思。你可以自定义约定,并且按照约定定制自动映射策略,面对遗留数据库时这个功能往往很有用,另外,由于mapping by code是基于代码的(而不是xml文件),对domain object进行重命名的重构操作会非常方便,不用跑到xml映射文件查找字符串了。

要使用Mapping by Code很简单,

第一步,配置SessionFactory,使nhibernate自动扫描项目中所有继承ClassMapping的类,并将其解释为映射

public class NHibernateHelper
{private static ISessionFactory _sessionFactory;public static ISessionFactory SessionFactory{get{if (_sessionFactory == null){var configuration = new Configuration();configuration.Configure();var mappers = new ModelMapper();mappers.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes());var hbmMapping = mappers.CompileMappingForAllExplicitlyAddedEntities();Console.WriteLine(hbmMapping.AsString());configuration.AddDeserializedMapping(hbmMapping, "");_sessionFactory = configuration.BuildSessionFactory();}return _sessionFactory;}}public static ISession OpenSession(){return SessionFactory.OpenSession();}
}

 

第二步,为每个实体类编写映射类,映射类只需继承ClassMapping就可以被nhibernate识别。

关于如何编写映射类,参考以下文章:

nHibernate Mapping By Code - One to One

nHibernate Mapping By Code - One to Many and Many to One

nHibernate Mapping By Code - Many to Many

参考文章:

NH Mapping by code VS the Untouchable DB

Using NH3.2 mapping by code for Automatic Mapping

NHibernate剖析:Mapping篇之Mapping-By-Code(2):运用ModelMapper


转载请注明出处

示例代码基于nHibernate3.3.1

转载于:https://www.cnblogs.com/iamzhenyu/archive/2012/07/01/2572216.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android绘制环形进度_Android动态自定义圆形进度条

这篇文章主要介绍了Android动态自定义圆形进度条,需要的朋友可以参考下效果图:A.绘制圆环,圆弧,文本//1.画圆环//原点坐标float circleX width / 2;float circleY width / 2;//半径float radius width / 2 - roundWidth / 2;//设置画笔的属…

2014全国计算机二级vfp模拟试题和答案,2014年全国计算机二级考试VF模拟试题

2014年全国计算机二级考试VF模拟试题选择题(1)下列数据结构中,属于非线性结构的是(  )。A)带链队列B)循环队列C)带链栈D)二叉树(2)下列叙述中正确的是(  )。A)数据的逻辑结构与存储结构是一一对应的B)算法的时间复杂度与空间复杂度一定相关C)算法的.效率只与问题…

一个自动生成关键字索引页面的比处理文件

电脑上资料多了之后,每次找资料很麻烦。因此,匠人写了这个批处理文件。1、把这个批处理文件放在资料目录。2、执行它,输入关键字。它回自动搜索整个目录以及下属目录中的所有文件名中包含该关键字的文件,并生成一个带超级连接的网…

指令 出厂_口碑营销_南澳出口木箱出厂价

口碑营销_南澳出口木箱出厂价 z1m0b1ch口碑营销_南澳出口木箱出厂价 无熏蒸有效期时间限制。拆装方便,由于钢带木箱采用的是钢边连接,因此极大的节省了运输成本,节约了储存空间,对吨以下的货物运输非常适合。而且由于钢边连接&…

j计算机实验室安全操作规范,实验室安全操作规程

与《实验室安全操作规程》相关的范文实验室安全使用操作规程 化学实验室安全使用操作规程 在中学化学实验中,使用的仪器、装置大部分是容易破碎的玻璃器皿,许多药品都是可燃、易爆、有腐蚀性或有毒的危险品,实验过程中常常需要用明火加热。因…

前端学习(498):水平居中布局得第一种方式

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…

和合符放枕头下的作用_深度解析:记忆棉枕头好,还是乳胶枕头好?

记忆棉枕头和乳胶枕头哪种好&#xff0c;并不能一概一论&#xff0c;要根据个人用枕需求来确定。首先&#xff0c;我们来了解一下它们本质上的区别&#xff0c;顾名思义&#xff0c;它们的本质区别就是材质&#xff0c;从手感上来说&#xff0c;乳胶材质在触感上会比记忆棉更加…

能够关闭并退出计算机程序的是,电脑强制关闭程序按哪三个键 可按Alt+F4关闭当前页面...

导读&#xff1a;说到程序&#xff0c;大多数人都知道&#xff0c;有人问电脑突然死机强制关机打不开&#xff0c;还有朋友想问电脑强制关闭程序按哪三个键&#xff0c;这到底是咋回事&#xff1f;事实上电脑qq怎么强制关闭呢&#xff0c;今天小编给大家整理了电脑强制关闭程序…

前端学习(499):水平居中布局得第一种方式得优点和缺点

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…

乒乓球单循环赛_重庆市首届乒乓球业余锦标赛开拍 冠军奖3万 总奖金近10万

上游新闻重庆晚报慢新闻记者 赵映骥 文 /图今天(20日)上午&#xff0c;大田湾体育馆迎来了又一项重磅赛事&#xff1a;重庆市首届泽九杯乒乓球业余锦标赛正式开拍&#xff0c;在为期三天的比赛中&#xff0c;邮电大学超越队、重庆烟草队等35支代表队、近百名乒乓球爱好者&#…

js 作用域

Javascript中的函数“在定义它们的作用域里运行&#xff0c;而不是在执行它们的作用域里运行”。 var tt aa; function test(){ alert(tt); var tt dd; alert(tt); } test(); 执行结果&#xff1a;undefined和dd test函数内部的“var ttdd”将会致使“var ttaa”在test函数被…

计算机组成原理实...,计算机组成原理实报告-杨睿.doc

计算机组成原理实报告-杨睿TH-union教学实验计算机系统实验报告学 院&#xff1a; 信息学院姓 名&#xff1a; 杨睿班 级&#xff1a; 计算机1101B学 号&#xff1a; 2011080332117指导老师&#xff1a; 李天工北京联合大学教务处编印实验一&#xff1a;TH-union教学实验计算机…

前端学习(500):水平居中布局得第二种方式

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…

swagger 修改dto注解_Swagger介绍及使用

Swagger介绍及使用导语&#xff1a;相信无论是前端还是后端开发&#xff0c;都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力&#xff0c;经常来不及更新。其实无论是前端调用后端&#xff0c;还是后…

注册和登录还有那个加密的密码

假设你在设计自己的系统的时候采用的是MVC架构。例如 也许可能有很多童鞋会这样设计Service和Model. service: public class AccountService { public bool Login(string userName, string password) { // insert into account values(userName,password); …

哪个软件测试手机电池续航好,6款手机电池续航测试排名:iPhone12mini险些垫底,第1名是小米10...

电池寿命是用户最重视的功能之一&#xff0c;如今Android手机电池容量越来越大。相反&#xff0c;iphone 12系列电池容量减少&#xff0c;寿命不尽人意。今天&#xff0c;我们将对iphone 12 mini、Piexl4、1加Nord、Realme X50Pro、1加8T、小米10等6种热门主力机的续航测试排名…

怎么让员工服从管理_职场 | 在职场中,遇到不服从管理的员工,该怎么办呢?...

不懂点心理学&#xff0c;怎么玩转职场&#xff1f;设为【星标】更方便点击上方公号名称→右上角三个点→设为星标&#xff01;职场心理志&#xff0c;专注职场生活的方方面面ID&#xff1a;Workplace-M作者 | 佚名文章来源 | 综合网络不服从管理的员工是个别人&#xff0c;根据…