摘要: NHibernate之配置文件属性说明一、NHibernate配置所支持的属性属性名用途dialect设置NHibernate的Dialect类名 - 允许NHibernate针对特定的关系数据库生成优化的SQL可用值:full.classname.of.Dialect, assemblydefau... 阅读全文
posted @ 2015-12-09 10:02 他乡客 阅读(168) 评论(0) 推荐(0) 编辑
摘要: NHibernate二级缓存(第十一篇)一、NHibernate二级缓存简介 NHibernate由ISessionFactory创建,可以被所有的ISession共享。 注意NHibernate查找缓存的顺序,在使用ISession操作数据时,NHibernate会先从一级缓存中查找需要... 阅读全文
posted @ 2015-12-09 10:02 他乡客 阅读(364) 评论(0) 推荐(0) 编辑
摘要: NHibernate之映射文件配置说明1.hibernate-mapping 这个元素包括以下可选的属性。schema属性,指明了这个映射所引用的表所在的schema名称。假若指定了这个属性, 表名会加上所指定的schema的名字扩展为全限定名。假若没有指定,表名就不会使用全限定名。default... 阅读全文
posted @ 2015-12-09 10:01 他乡客 阅读(251) 评论(0) 推荐(0) 编辑
摘要: NHibernate 延迟加载与立即加载 (第七篇)一、延迟加载 延迟加载可以理解为:当需要用的时候才加载。 假设我们数据库有一个Person对象,一个Country对象,其中Person属于Country,一对多关系。当我们Get()一个 Person对象的时候。并不立即把Country对象也... 阅读全文
posted @ 2015-12-09 10:00 他乡客 阅读(192) 评论(0) 推荐(0) 编辑
摘要: NHibernate 数据查询之Linto to NHibernate (第八篇) 刚学NHibernate的时候觉得,HQL挺好用的,但是终归没有与其他技术 相关联,只有NHibernate用到,一来容易忘记,二来没有智能提示,排除错误什么的都不给力,直到看到一个同事用Linq to NHibe... 阅读全文
posted @ 2015-12-09 09:59 他乡客 阅读(213) 评论(0) 推荐(0) 编辑
摘要: NHibernate 映射基础(第三篇) 简单映射、联合主键 NHibernate完全靠配置文件获取其所需的一切信息,其中映射文件,是其获取数据库与C#程序关系的所有信息来源。一、简单映射 下面先来一个简单的例子,然后随着不断地对这个例子修修改改,从而真正了解映射文件。具体的资料可以查看http... 阅读全文
posted @ 2015-12-09 09:59 他乡客 阅读(221) 评论(0) 推荐(0) 编辑
摘要: NHibernate 组件基础 (第六篇)一、组件简介 组件(Component)可以理解为被一个对象所包含的对象而持久化,而并非一个实体。简单说来,假如数据库有FirstName,LastName这两个字段,我们在C#中可以将这两个字段提取出来作为一个Name对象使用。 示例,首先建一张表,并... 阅读全文
posted @ 2015-12-09 09:59 他乡客 阅读(182) 评论(0) 推荐(0) 编辑
摘要: NHibernate 集合映射深入 (第五篇) ,,,一、集合外键 在NHibernate中,典型的用于映射集合类的元素有,,,,,。 我们回到上一篇,集合映射基础当中的一对多查询。对于集合类型: public virtual ISet ListPerson { get; set; } NH... 阅读全文
posted @ 2015-12-09 09:58 他乡客 阅读(237) 评论(0) 推荐(0) 编辑
摘要: NHibernate 基本配置 (第一篇) 使用NHibernate最重要的一步就是配置,如果连NHibernate都还没有跑的起来,谈何学习。今天就来详解一下NHibernate的配置。一、NHibernate基本配置 NHibernate配置要注意的有: 1、NHibernate需要一个自... 阅读全文
posted @ 2015-12-09 09:57 他乡客 阅读(210) 评论(0) 推荐(0) 编辑
摘要: NHibernate 集合映射基础(第四篇) - 一对一、 一对多、多对多小示例 映射文件,用于告诉NHibernate数据库里的表、列于.Net程序中的类的关系。因此映射文件的配置非常重要。一、一对一 NHibernate一对一关系的配置方式使用配置节点。 当我们两个表拥有相同的主键字段,主... 阅读全文
posted @ 2015-12-09 09:57 他乡客 阅读(337) 评论(0) 推荐(0) 编辑
摘要: NHibernate之一级缓存(第十篇) NHibernate的一级缓存,名词好像很牛B,很难。实际上就是ISession缓存。存储在ISession的运行周期内。而二级缓存则存储在ISessionFactory内。一、ISession一级缓存测试 ISession默认开启一级缓存,不需要任何配... 阅读全文
posted @ 2015-12-09 09:56 他乡客 阅读(185) 评论(0) 推荐(0) 编辑
摘要: NHibernate 之持久化类、拦截器 (第二篇)一、持久化类中成员标量的要求 作为被NHibernate使用的持久化类,必须满足以下几点要求: 1、声明读写属性 在NHibernate的使用中,持久化类的成员变量必须声明对应的属性,NHibernate支持public、internal... 阅读全文
posted @ 2015-12-09 09:56 他乡客 阅读(173) 评论(0) 推荐(0) 编辑
摘要: NHibernate Linq查询 扩展增强 (第九篇) 在上一篇的Linq to NHibernate的介绍当中,全部是namespace NHibernate命名空间中的IQueryOver接口提供的。IQueryOver这个借口实际上会被翻译成条件查询(Criteria Queries)。 ... 阅读全文
posted @ 2015-12-09 09:55 他乡客 阅读(263) 评论(0) 推荐(0) 编辑
摘要: NHibernate 之数据操作 (第五篇) 数据操作,在这里主要介绍INSERT、UPDATE、DELETE。我们在使用NHibernate的时候,如果只是查询数据,不需要改变数据库的值,那么是不需要提交或者回滚到数据库的。一、INSERT 通过调用ISession.Save()方法,然后同步... 阅读全文
posted @ 2015-12-09 09:55 他乡客 阅读(224) 评论(0) 推荐(0) 编辑
摘要: NHibernate 操作视图 第十三篇 在NHibernate中,可以把视图当表一样操作,只需要记住一点就是,视图是只读的,因此映射实体的setter应该改为protected。 新建一个视图如下: 持久化类: public class CountryPersonModel ... 阅读全文
posted @ 2015-12-09 09:54 他乡客 阅读(100) 评论(0) 推荐(0) 编辑
摘要: NHibernate 过滤器(第十五篇) NHibernate过滤器相当于定义一个非常类似于类和集合上使用的where子句。ISession 中默认是不启用过滤器的,必须通过ISession.EnableFilter()方法显式的启用。 该方法返回被启用的IFilter的实例。这也支持链式操作。 ... 阅读全文
posted @ 2015-12-09 09:53 他乡客 阅读(185) 评论(0) 推荐(0) 编辑
摘要: NHibernate 存储过程 第十四篇 NHibernate也是能够操作存储过程的,不过第一次配置可能会碰到很多错误。一、删除 首先,我们新建一个存储过程如下: CREATE PROC DeletePerson @Id int AS DELETE FROM Person WHERE P... 阅读全文
posted @ 2015-12-09 09:53 他乡客 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 在NHibernate的映射中,关于继承的映射策略有3种方式单表继承类表继承具体表继承 另外还有一种比较特别的多态映射隐式多态 下面分别来阐述NHibernate继承映射的各种策略要点。一、单表继承 单表继承的方式是,所有的字段都放在一个表中,用一个字段来区分子类。使用配置节点配置子类。 看... 阅读全文
posted @ 2015-12-09 09:52 他乡客 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 首先,当然是安装MemCache服务器端了。 然后配置过程,仅仅两个问题。 1、NHibernate要与NHibernate.Cache的版本要一致。否则,NHibernate.Caches.MemCache.MemCacheProvider无法实例化。 2、要引用log4net,否则Memc... 阅读全文
posted @ 2015-12-09 09:51 他乡客 阅读(511) 评论(0) 推荐(1) 编辑
摘要: 在NHibernate中,ISessionFactory是线程安全的,对应一个数据库。它是生成ISession的工厂。而ISession是线程不安全的。 创建一个ISessionFactory需要消耗比较多的资源。因此,我们只在程序初始化的时候创建一次,以后就一直使用这个ISessionFacto... 阅读全文
posted @ 2015-12-09 09:50 他乡客 阅读(200) 评论(0) 推荐(0) 编辑