NHibernate Step By Step(5)-实体表现模式
来源:互联网 发布:金融网络销售装美女 编辑:程序博客网 时间:2024/06/18 08:21
1.默认持久化类,即一个配置文件对应一个实体类了
在JAVA世界中被称之为POJO(Plain Old Java Object).到了.net,就变成POCO(Plain Old Class Object)了,Class是我自己猜的
我们可以通过配置默认的配置文件default_entity_mode节点来修改,EntityMode 枚举定义了三种方式.
public enum EntityMode{ Poco, Map, Xml}
2.动态模型
意图是创建实体映射文件,但不创建实体类(不是有实体类,不创建映射文件,实际上我好想这样…),好处就是不用创建实体类,可带来一些灵活性
如下配置文件 class节点不再指定table而是entity-name,做法是以Map的key,value方式来实现
<class entity-name="ProductLine"> <id name="Id" column="productId" type="System.Int32"> <generator class="native"/> </id> <property name="Description" not-null="true" length="200" type="string"/> <bag name="Models" cascade="all" inverse="true"> <key column="productId"/> <one-to-many class="Model"/> </bag></class><class entity-name="Model"> <id name="Id" column="modelId" type="System.Int32"> <generator class="native"/> </id> <property name="Name" not-null="true" length="25" type="string"/> <property name="Description" not-null="true" length="200" type="string"/> <many-to-one name="ProductLine" column="productId" not-null="true" class="ProductLine"/></class>
我们还是看代码吧
(1)首先当然是修改默认实体表现模式了
configuration.SetProperty(Environment.DefaultEntityMode, EntityModeHelper.ToString(EntityMode.Map));
(2)数据操作方法
以IDictionary 接口来操作,保存的时候需要保存对象的名字需要与entity-name相同
IDictionary cars;IList models;using (ISession s = OpenSession()){ t = s.BeginTransaction(); cars = new Hashtable(); cars["Description"] = "Cars"; IDictionary monaro = new Hashtable(); monaro["ProductLine"] = cars; monaro["Name"] = "Monaro"; monaro["Description"] = "Holden Monaro"; IDictionary hsv = new Hashtable(); hsv["ProductLine"] = cars; hsv["Name"] = "hsv"; hsv["Description"] = "Holden hsv"; models = new List<IDictionary> {monaro, hsv}; cars["Models"] = models; s.Save("ProductLine", cars); t.Commit();}
3.以XML做数据库
之前就有听说hibernate要支持这个功能,就不知不觉有了这个功能了,也不知道这个怎么样,我们常要读取xml文件,但又想以实体方式获取,这样就得一个个属性的赋值给实体,若实现与xml映射的话,就免了这个过程了,但我相信肯定会添加了其他的复杂度,这个功能暂时用到的不多,就不写了.
hibernate转到.net平台的移植度还是非常的高的,几乎一样了
- NHibernate Step By Step(5)-实体表现模式
- NHibernate Step by Step
- NHibernate Step by Step
- NHibernate Step by Step:序篇
- NHibernate Step by Step:序篇
- NHibernate Step by Step:序篇
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (一) Hello,NHibernate!
- NHibernate Step by Step (五)Criteria Query
- NHibernate Step by Step (五)Criteria Query
- NHibernate Step by Step (五)Criteria Query
- Spring.NET学习笔记(3)-注册事件注入
- Spring.NET学习笔记(2)-依赖注入细节
- Spring.NET学习笔记(1)-基本依赖注入
- NHibernate Step By Step(7)-映射集合类型
- NHibernate Step By Step(6)-关联关系
- NHibernate Step By Step(5)-实体表现模式
- NHibernate Step By Step(4)-事件(Event)
- NHibernate Step By Step(3)-数据操作回调方法(拦截器)
- NHibernate Step By Step(2)-继承映射
- NHibernate Step By Step(1)-配置文件(Configuration)
- com学习笔记(10)自动化
- com学习笔记(9)IDL
- com学习笔记(8)编成工作的简化
- com学习笔记(7)包容与聚合