NHibernate2.1实例使用教程之entity-name特性介绍(2)
3.Test 先保存一些Domain,注意这里用到了重载session.Save(实体名称, 实例)方法。 Code [http://www.xueit.com] using (var s = Sessions.OpenSession()) using (var tx = s.BeginTransact
3.Test
先保存一些Domain,注意这里用到了重载session.Save(实体名称, 实例)方法。
Code [http://www.xueit.com]
using (var s = Sessions.OpenSession()) using (var tx = s.BeginTransaction()) { var rf = new Reptile { Description = "父" }; var rm = new Reptile { Description = "母" }; var rc1 = new Reptile { Description = "子1" }; var rc2 = new Reptile { Description = "子2" }; var rfamily = new Family<Reptile> { Father = rf, Mother = rm, Childs = new HashedSet<Reptile> { rc1, rc2 } }; var hf = new Human { Description = "父亲", Name = "Father" }; var hm = new Human { Description = "母亲", Name = "Mother" }; var hc1 = new Human { Description = "孩子", Name = "Child" }; var hfamily = new Family<Human> { Father = hf, Mother = hm, Childs = new HashedSet<Human> { hc1 } }; //重载session.Save(实体名称, 实例)方法 s.Save("ReptilesFamily", rfamily); s.Save("HumanFamily", hfamily); tx.Commit(); }
运行结果:

查询:
Code [http://www.xueit.com]
using (var s = Sessions.OpenSession()) using (var tx = s.BeginTransaction()) { IList<Family<Human>> hf = s.CreateQuery("from HumanFamily").List<Family<Human>>(); Assert.That(hf.Count, Is.EqualTo(1)); Assert.That(hf[0].Father.Name, Is.EqualTo("Father")); Assert.That(hf[0].Mother.Name, Is.EqualTo("Mother")); Assert.That(hf[0].Childs.Count, Is.EqualTo(1)); IList<Family<Reptile>> rf = s.CreateQuery("from ReptilesFamily").List<Family<Reptile>>(); Assert.That(rf.Count, Is.EqualTo(1)); Assert.That(rf[0].Childs.Count, Is.EqualTo(2)); tx.Commit(); }
运行结果:

代码
Source Project Home:http://code.google.com/p/yjinglee/
SVN CheckOut:http://yjinglee.googlecode.com/svn/trunk/
结语
上面的映射还是有点复杂,可以想想更有趣的是只持久化Family<T>类。因为我创建一张表(家族表)而我需要一些具体的类型Family<Reptile>和Family<Human>。在这种情况下我不能说Family<Reptile>是子类(在我的Domain中,没有Family<T>的父类 )。可以使用<discriminator>、discriminator-value和where标签,大家可以先想想映射怎么改写呢。
精彩图集
精彩文章
热门标签
糗百图片
人数
unref()
事件管理
安装方
子程序
信号
导致定时器失
扩展插件
灾难性故障
strpos函数
循环集合
检测lvs
CDATA的作用说明
BMP
字
ORM
三元运算符
modu
直接
简单的
伪装
soap消
ff
id未定义
tar命令错误
coroutine
修改文件名
数目
磁盘管理
安装配置
竖排
对象指针
受访
提交事件
窗口传参
php php写
Socks5
控制符
js基础教程
opendir(
phpnow
排序去重
内存溢出
name
php PHP自
易理解
对象初始值
jsp文件
WPF
等待处理
文件上传控件
枚举窗口句柄
consistent
javascript知识
hashCode
时分秒
口语化
异步执行
动态图片
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229

