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(实体名称, 实例)方法。

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(); }
运行结果:
查询:

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标签,大家可以先想想映射怎么改写呢。
精彩图集
精彩文章
热门标签
insert_selec
更新失败
NTFS
父窗口
爬虫入门教程
udf编程
健康状态
网络监听
3.6
区
chkconfig
slow
linux解压缩
status
元组
硬币翻转倍数
查找连
assets目录
支持中文
文件写入
不刷新
对多关联
python3.3教程
多列显示
计
context
判断页面关闭
memcached学习
查找
扩展属性
元字符
随机数组
EXT4
权限问题
网页链接提取
句号
php Linux系统
php语句
iostream
五角星
正则
last_insert_
图片
传递数据
外键
恢复模式
连同数据
表格列宽
动态包含
学习总结
An
php合并js
微软精灵
php连接mysql
sql建表
字母数字组合
Argument
浏览器语言
filter
php php对文件进
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229