随笔分类 -  nhibernate

ORM
摘要:刚学NHibernate的时候觉得,HQL挺好用的,但是终归没有与其他技术相关联,只有NHibernate用到,一来容易忘记,二来没有智能提示,排除错误什么的都不给力,直到看到一个同事用Linq to NHibernate,那代码是相当的清晰明了,其实什么条件查询,HQL什么的感觉只是一个NHibe 阅读全文
posted @ 2017-06-02 15:28 韩梦芫 阅读(971) 评论(0) 推荐(1) 编辑
摘要:1. hibernate-mapping 1. hibernate-mapping 这个元素包括以下可选的属性。schema属性,指明了这个映射所引用的表所在的schema名称。假若指定了这个属性, 表名会加上所指定的schema的名字扩展为全限定名。假若没有指定,表名就不会使用全限定名。defau 阅读全文
posted @ 2017-06-02 15:25 韩梦芫 阅读(391) 评论(0) 推荐(0) 编辑
摘要:一、集合外键 在NHibernate中,典型的用于映射集合类的元素有<set>,<list>,<map>,<bag>,<array>,<primitive-array>。 我们回到上一篇,集合映射基础当中的一对多查询。对于集合类型: NHibernate的配置文件与之对应的是: 那么<set>、<l 阅读全文
posted @ 2017-06-02 15:22 韩梦芫 阅读(224) 评论(0) 推荐(0) 编辑
摘要:WCF+Nhibernate 在查询中只要涉及到表关联,都会存在一个循环引用而导致客户端不能反序列化的问题。 解决的办法: 1.多对一关联中,设置lazy="false". 2.一对多关联中,配置文件的属性使用bag类型,实体类中对应的属性为强类型的集合IList<类型>,而不能为弱类型IList, 阅读全文
posted @ 2017-06-02 15:15 韩梦芫 阅读(218) 评论(0) 推荐(0) 编辑
摘要:之前一直是公司用NHibernate2.1来做项目,连接oracle 10g的数据库,配置NHibernate的东西都是以前的同事做好了的,也怪自己太懒了,没尝试过配置这个东西,虽然一直在使用NHibernate做项目,前几天突然有想法想用NHibernate自己做一个项目,才发现配置一个NHibe 阅读全文
posted @ 2017-05-14 01:19 韩梦芫 阅读(1803) 评论(0) 推荐(1) 编辑
摘要:在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做一个简单的Demo,并不详细的讲解CodeSmith各个强大的功能,有兴趣的朋友可以打开CodeSm 阅读全文
posted @ 2017-05-03 21:43 韩梦芫 阅读(10854) 评论(4) 推荐(2) 编辑
摘要:1. NuGet是什么? NuGet is a Visual Studio 2010 extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects that 阅读全文
posted @ 2017-05-02 23:15 韩梦芫 阅读(506) 评论(0) 推荐(0) 编辑
摘要:1. hibernate-mapping 1. hibernate-mapping 这个元素包括以下可选的属性。schema属性,指明了这个映射所引用的表所在的schema名称。假若指定了这个属性, 表名会加上所指定的schema的名字扩展为全限定名。假若没有指定,表名就不会使用全限定名。defau 阅读全文
posted @ 2017-05-02 23:09 韩梦芫 阅读(615) 评论(0) 推荐(0) 编辑
摘要:刚学NHibernate的时候觉得,HQL挺好用的,但是终归没有与其他技术相关联,只有NHibernate用到,一来容易忘记,二来没有智能提示,排除错误什么的都不给力,直到看到一个同事用Linq to NHibernate,那代码是相当的清晰明了,其实什么条件查询,HQL什么的感觉只是一个NHibe 阅读全文
posted @ 2017-05-02 09:28 韩梦芫 阅读(2017) 评论(0) 推荐(0) 编辑
摘要:可用值: full.classname.of.Dialect, assembly 可用值: SCHEMA_NAME 可用值: true | false 可用值:建议在0 到3之间取值。 可用值: true | false 可用值: null | lcg | codedom 可用值: classnam 阅读全文
posted @ 2017-05-02 00:11 韩梦芫 阅读(725) 评论(0) 推荐(0) 编辑
摘要:“System.Exception”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理其他信息: OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用。如有适用于此异常的处理程序,该程序便可安全地继续运行。这个是NHibernate没有配置好造成的,重新配... 阅读全文
posted @ 2015-08-31 23:29 韩梦芫 阅读(1453) 评论(0) 推荐(0) 编辑
摘要:本节内容引入立即加载实例分析1.一对多关系实例2.多对多关系实例结语引入通过上一篇的介绍,我们知道了NHibernate中默认的加载机制——延迟加载。其本质就是使用GoF23中代理模式实现,这节我们简单分析NHibernate另一种加载机制——立即加载。我用一张图片形象的展现立即加载机制。立即加载顾... 阅读全文
posted @ 2014-09-21 15:49 韩梦芫 阅读(168) 评论(0) 推荐(0) 编辑
摘要:本节内容引入延迟加载实例分析1.一对多关系实例2.多对多关系实例结语引入通过前面文章的分析,我们知道了如何使用NHibernate,比如CRUD操作、事务、一对多、多对多映射等问题,这篇我们初步探索NHibernate中的加载机制。在讨论之前,我们看看我们使用的数据模型,回顾一下第二篇建立的数据模型... 阅读全文
posted @ 2014-09-21 15:48 韩梦芫 阅读(198) 评论(0) 推荐(0) 编辑
摘要:本节内容多对多关系引入多对多映射关系多对多关联查询1.原生SQL关联查询2.HQL关联查询3.Criteria API关联查询结语多对多关系引入让我们再次回顾在第二篇中建立的数据模型:在图上,我已经清晰的标注了表之间的关系,上两篇分析Customer和Order之间的“外键关系”或者称作“父子关系”... 阅读全文
posted @ 2014-09-21 15:46 韩梦芫 阅读(215) 评论(0) 推荐(0) 编辑
摘要:本节内容关联查询引入一对多关联查询1.原生SQL关联查询2.HQL关联查询3.Criteria API关联查询结语关联查询引入在NHibernate中提供了三种查询方式给我们选择:NHibernate查询语言(HQL,NHibernate Query Language)、条件查询(Criteria ... 阅读全文
posted @ 2014-09-21 15:45 韩梦芫 阅读(178) 评论(0) 推荐(0) 编辑
摘要:本节内容引入NHibernate中的集合类型建立父子关系父子关联映射结语引入通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHibernate中的亮点,也是最难掌握的技术。从这篇开始学习这些东西,我将图文结合来说明这里奥秘的知识。前几篇,我们的例子只使... 阅读全文
posted @ 2014-09-21 15:44 韩梦芫 阅读(285) 评论(0) 推荐(0) 编辑
摘要:本节内容引入方案1:直接添加方案2:巧用组件实例分析结语引入通过前面7篇的学习,有点乏味了~~~这篇来学习一个技巧,大家一起想想如果我要在Customer类中实现一个Fullname属性(就是Firstname和Lastname的组合)该怎么做呢?方案1:直接添加“我知道!修改Customer类,添... 阅读全文
posted @ 2014-09-21 15:43 韩梦芫 阅读(153) 评论(0) 推荐(0) 编辑
摘要:本节内容什么是并发控制?悲观并发控制(Pessimistic Concurrency)乐观并发控制(Optimistic Concurrency)NHibernate支持乐观并发控制实例分析结语什么是并发控制?当许多人试图同时修改数据库中的数据时,必须实现一个控制系统,使一个人所做的修改不会对他人所... 阅读全文
posted @ 2014-09-21 15:42 韩梦芫 阅读(161) 评论(0) 推荐(0) 编辑
摘要:本节内容事务概述1.新建对象【测试成功提交】【测试失败回滚】2.删除对象3.更新对象4.保存更新对象结语上一篇我们介绍了NHibernate中的Insert, Update, Delete操作,这篇我们来看看NHibernate中的事务。你通过它可以提交或者回滚你的操作。事务概述1.NHiberna... 阅读全文
posted @ 2014-09-21 15:41 韩梦芫 阅读(163) 评论(0) 推荐(0) 编辑
摘要:本节内容操作数据概述1.新建对象2.删除对象3.更新对象4.保存更新对象结语操作数据概述我们常常所说的一个工作单元,通常是执行1个或多个操作,对这些操作要么提交要么放弃/回滚。想想使用LINQ to SQL,一切的东西都在内存中操作,只有调用了DataContext.SubmitChanges()方... 阅读全文
posted @ 2014-09-21 15:40 韩梦芫 阅读(234) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示