代码改变世界

随笔分类 -  L.NHibernate

NHibernate Step By Step(11)-命名SQL查询

2010-08-26 23:59 by Clingingboy, 1125 阅读, 收藏, 编辑
摘要: 通过一个配置文件,往往无法满足所有的查询,nh提供了sql命名查询,即把sql查询语句定义在配置文件中,如下1.通过GetNamedQuery方法获取IQuery<return-scalar&g... 阅读全文

NHibernate Step By Step(10)-常用的配置属性

2010-08-26 23:57 by Clingingboy, 995 阅读, 收藏, 编辑
摘要: 概况 (1)connection.driver_class 数据访问驱动 (2)dialect sql方言 (3)connection.connection_string 数据连接字符串 (4)con... 阅读全文

NHibernate Step By Step(9)-条件查询(Criteria Queries)

2010-08-26 23:57 by Clingingboy, 799 阅读, 收藏, 编辑
摘要: Criteria 查询是其中查询的一种,其特点是,以各种API来进行查询,大家都不喜欢以字符串形式来查询,比如HQL.这种查询也犹如linq的where,any,等子查询。非常的方便,一般大家会首选此... 阅读全文

NHibernate Step By Step(8)-数据过滤器

2010-08-26 23:56 by Clingingboy, 738 阅读, 收藏, 编辑
摘要: 1.定义过滤器2.在映射文件中使用过滤器 犹如在hql中下查询语句 3.在配置文件中获取过滤器 4.启动过滤器 ISession</TT对象中会用到的方法有: class=literal Ena... 阅读全文

nhibernate 抓取策略

2010-03-15 11:52 by Clingingboy, 460 阅读, 收藏, 编辑
摘要: 三种方式 1. 默认策略 select,即默认的延迟加载,一条一条的取(记得设置lazy为ture,不然很惨,有几条数据就会执行几条sql语句) 2.join 连接表,一句话搞定,但速度慢 3.subselected子表查询,使用in来查询 4.batch-size 批次抓取 即一次自定语取一定数据 阅读全文

NHibernate Step By Step(6)-关联关系

2009-08-05 21:45 by Clingingboy, 658 阅读, 收藏, 编辑
摘要: 关联关系是可以反推的,比如Person和Address,一家人可以住在同个地址,但一个人也可以同时拥有都个地址,如家庭地址,工作地址。概念并不复杂,反而被未说清楚的示例搞晕了。 关联分为单向与双向,即两者之间的关系存在一种或两种 下面的为双向关联,去掉其中一个关联即是单向了.(一个问题有多个答案)改为一对一以上配置为无连接表(即只有两张表),配置成有连接表更加灵活有连接表的配置 指定unique为true,并指定set的table 一对多以上配置将会生成一个关联表 多对一 生成表结构 还有关联的一对一与多对多.双向关联一对多,多对一即典型的父子关系即上面的第一种关系一般分为主键和外键关联, 阅读全文

NHibernate Step By Step(5)-实体表现模式

2009-08-03 00:07 by Clingingboy, 657 阅读, 收藏, 编辑
摘要: 1.默认持久化类,即一个配置文件对应一个实体类了 在JAVA世界中被称之为POJO(Plain Old Java Object).到了.net,就变成POCO(Plain Old Class Object)了,Class是我自己猜的 我们可以通过配置默认的配置文件default_entity_mode节点来修改,EntityMode 枚举定义了三种方式.2.动态模型意图是创建实体映射文件,但不创建实体类(不是有实体类,不创建映射文件,实际上我好想这样…),好处就是不用创建实体类,可带来一些灵活性如下配置文件 class节点不再指定table而是entity-name,做法是以Map的key,v 阅读全文

NHibernate Step By Step(4)-事件(Event)

2009-08-02 23:23 by Clingingboy, 1017 阅读, 收藏, 编辑
摘要: 除了拦截器,NH还有事件机制,与拦截器不同,这些事件全部与操作有关进行分拆,这其实是一件相当大的工作量,因为着session的每个操作都会有对应的事件,对使用者而言,灵活度则增加了.所以在NHiber... 阅读全文

NHibernate Step By Step(3)-数据操作回调方法(拦截器)

2009-08-02 16:25 by Clingingboy, 1116 阅读, 收藏, 编辑
摘要: 1.ILifecycle 2.IValidatable 3.Interceptor ILifecycle接口 在数据操作的时候,我们可能需要做些格外的处理,比如Save方法可能就需要一个OnSave方法 NH提供了ILifecycle接口,用于回调 该接口包含4个方法,当实体类实现该接口时,session调用这些方法时,将会先检测,以返回的LifecycleVeto枚举作判断,Veto则禁止通过,NoVeto则允许数据操作执行 如下实体类测试,将无法保存数据到数据库中IValidatable接口 用于验证数据的正确性,实体实现该接口,在保存或更新数据操作时,都会调用此方法,若验证不通过,则抛出 阅读全文

NHibernate Step By Step(2)-继承映射

2009-08-02 16:24 by Clingingboy, 1669 阅读, 收藏, 编辑
摘要: 分三种 1.单表继承 既然是单表继承就需要一个键值来标识类别 class以discriminator-value来标识类别 discriminator 用以表示鉴别器的表字段 继承的类以sub... 阅读全文

NHibernate Step By Step(1)-配置文件(Configuration)

2009-08-02 12:09 by Clingingboy, 1734 阅读, 收藏, 编辑
摘要: 属于orm的配置文件 介绍一些常用的方法,太生僻的就不写了 一.全局配置 这是程序的入口点,一般情况两种常用配置方法1.在app.config或者web.config文件配置如下节点(1)配置节点(2)配置具体参数2.将文件配置到hibernate.cfg.xml的文件中读取配置文件方法(1)默认读取配置文件(推荐方法)即上面定义了文件文件后,默认采用Configure无参方法读取,若配置了config文件,则优先读取,否则从hibernate.cfg.xml文件中读取(2)自定义读取配置文件下面的情况虽提供了灵活性,但不推荐使用,增加了复杂度.方法一:根据特定文件读取方法二:根据程序集嵌入的 阅读全文
点击右上角即可分享
微信分享提示