摘要:动态代理的使用方法和相关概念可以参考Castle Dynamic ProxyNHibernate实现延迟加载的主要结构: BuildSessionFactory的时候:1. 根据proxyfactory.factory_class的配置创建IProxyFactoryFactory对象2. 如果use_proxy_validator配置为true(默认为true),加载实体映射元数据之后,对需要代理...
阅读全文
摘要:如果你在使用NHibernate的二级缓存,详细的了解NHibernate的缓存管理,有助于正确的使用缓存;如果你在应用中自己管理缓存,参考一下NHibernate的缓存管理方案,也许可以少走很多弯路
阅读全文
摘要:系统使用一段时间后出现这个错误,原因是项目中有session未关闭造成
阅读全文
摘要:服务器为Oracle 9i,NHibernate使用NHibernate.Driver.OracleDataClientDriver(Oracle.DataAccess.dll,使用ODTwithODAC1020221这个版本安装。因为正式部署打算用Oracle 10g,所以客户端NHibernate用了这个驱动,另外也是为了避免System.Data.OracleClient.dll操作Clo...
阅读全文
摘要:There's nothing says how to use MemCached in NHibernate, here is the steps to approach this. It's very easy in fact.
阅读全文
摘要:publicIList<BoxDao>QueryRelated(TemplateDao[]templates,DataSourceDao[]datasources){ICriteriacriteria=this._session.CreateCriteria(typeof(BoxDao));Expression.ICriterionexp=null;exp=Expression.Or(...
阅读全文
摘要:1. Concrete Table Inheritance (具体表继承,table-per-concrete-class)
2. Single Table Inheritance (单表继承,table per class hierarchy)
3. Class Table Inheritance (类表继承,table-per-subclass)
4. 继承,关系型与面向对象最激烈的冲突
5. 继承,贫血的痛处
6. NHibernate table-per-concrete-class, table-per-subclass例子
阅读全文
摘要:1. set, bag, list, map的语义
2. set, bag, list, map语义与System.Collections的对应关系
3. 集合映射中实体(Entity)跟值对象(Value Object)的区别
4. <set>, <bag>, <list>, <map>的使用
5. 集合元素的顺序, <idbag>
阅读全文
摘要:服务器Oracle 9i,客户端Oracle 10g。问题1:NHibernate配置的Driver为NHibernate.Driver.OracleClientDriver,存入Clob、NClob字段,值比较大时报错,错误信息中文:ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值英文:ORA-01461: can bind a LONG value only for ins...
阅读全文
摘要:一个bug调试了半天,才发现跟NHibernate透明代理有关。 用测试代码验证了一下: ClassA有两个属性S1和S2,S1使用NHibernate持久化,S2不需要持久化。 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->public...
阅读全文
摘要:NHibernate里面one-to-one有两种方式:主键关联和唯一外健关联主键关联:两个表拥有相同的主键字段,值相同的关联在一起。典型的应用是一个对象的属性太多,将常用的属性跟不常用的附加属性分开存放,或者按照业务分类存放、维护,例如物料的通用属性、财务属性、采购属性、生产制造属性。因为表示的是同一个对象,所以它们的生命周期是相同的。但一般会有一个主从关系,因为通常我们会将其中的一个主表跟对象...
阅读全文
摘要:NHibernate documentation: The built in ways of accessing the values of Properties in your domain class are: Access Method How NHibernate accesses the Mapped Cl...
阅读全文
摘要:NHibernate中ICompositeUserType和IUserType的区别
阅读全文
摘要:问题现象:一个session开了事务,先执行insert、update,然后执行ICriteria.List()、IQuery.List(),或者是某些session.Get()方法,最后ITransaction.Commit()。监控执行的SQL语句,发现NHibernate重复执行了很多update的SQL操作。 问题原因: 1. flush-mode问题 NH...
阅读全文
摘要:1. 实体生命周期;2. 一级缓存 二级缓存;3. 拦截器
阅读全文
摘要:首先,把PlantItem对象的数据结构做一些调整,然后再进行本节中的测试。 在NHibernate考察系列 04一节中测试结果,象PlantItem这种复合主键对象,使用一个语意上的ID比较合适,这里我们就按照这种方式修改过来。因为domain对ID属性没有任何依赖,不用于对象间的关联,因此使用一个整数类型就可以了。为TBLPLANTITEM表添加一个int的ID字段,设置成identity(最...
阅读全文
摘要:自定义映射、组合主键的考察
1. one-to-many, many-to-one
2. 枚举类型
3. 自定义类型、自定义映射类型IUserType
4. 组件类型component 组合主键composite-id
5. 自定义组合映射类型ICompositeUserType
阅读全文
摘要:NHibernate比较全面的many-to-many、集合映射考察
1. 创建关联
2. 主映射端 反向端
3. 获取关联的集合对象
4. lasy 延迟加载
5. cascade 级联更新
6. 集合排序
阅读全文
摘要:NHibernate入门示例。 测试项目目录结构如下 建立一个Company类用来测试,对应的表为TBLCOMPANY。 1. 下载NHibernate(版本1.2.0.CR1),将NHibernate \bin\net-2.0下面的文件拷贝到lib目录。 2. 为实体建立Class Library的Domain工程。为工程添加\lib\Iesi.Collections.dll文件的引用(以后用...
阅读全文
摘要:http://files.cnblogs.com/RicCC/nhibernate_1.2_example.rar 目的考察NHibernate的一些主要特性,确定NHibernate的使用和基于NHibernate的设计方案。大致会包括以下一些方面:简单映射;many-to-many、many-to-one、one-to-many;枚举类型;自定义类型(简单类型和组合类型);条件式查询(Crit...
阅读全文