nhibernate学习之集合组合依赖
来源:互联网 发布:丙纶和js 编辑:程序博客网 时间:2024/04/28 01:50
1.学习目标
还是学习compenent的用法,上节实现了简单字段的组合,这节中将讨论两个问题:1.依赖对象有一个指向容器对象的引用。2。集合依赖
2.开发环境和必要准备
开发环境为:windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition
必要准备:学习前六篇nhibernate学习系列Nhibernate学习之起步篇-1 ,Nhibernate学习起步之many-to-one篇 ,Nhibernate学习之many-to-many篇 ,nhibernate学习之三级联(Ternary Associations)篇 ,Nhibernate学习之性能改善1 ,nhibernate性能之二级缓存篇 ,nhibernate学习之简单组合的映射
3.通过parent为依赖组合对象映射一个指向容器对象的引用
CompositeUser.cs
加载一个CompositeUser对象,结果如图
4. 集合组合依赖
Composite.cs
运行添加一个Composite的测试代码,会在数据库中建立两个数据表 CompositeUser和UserNames
效果图
还是学习compenent的用法,上节实现了简单字段的组合,这节中将讨论两个问题:1.依赖对象有一个指向容器对象的引用。2。集合依赖
2.开发环境和必要准备
开发环境为:windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition
必要准备:学习前六篇nhibernate学习系列Nhibernate学习之起步篇-1 ,Nhibernate学习起步之many-to-one篇 ,Nhibernate学习之many-to-many篇 ,nhibernate学习之三级联(Ternary Associations)篇 ,Nhibernate学习之性能改善1 ,nhibernate性能之二级缓存篇 ,nhibernate学习之简单组合的映射
3.通过parent为依赖组合对象映射一个指向容器对象的引用
CompositeUser.cs
UserName.cs
映射文件:CompositeUser.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="NhibernateSample1.CompositeUser,NhibernateSample1" table="CompositeUser" lazy="false">
<id name="Uid" column="Uid" unsaved-value="0">
<generator class="native" />
</id>
<component name="Name" class="NhibernateSample1.UserName,NhibernateSample1">
<parent name="User"></parent>
<property name="FirstName" column="FirstName"></property>
<property name="LastName" column="LastName"></property>
</component>
</class>
</hibernate-mapping>
注意parent是指向容器对象的引用<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="NhibernateSample1.CompositeUser,NhibernateSample1" table="CompositeUser" lazy="false">
<id name="Uid" column="Uid" unsaved-value="0">
<generator class="native" />
</id>
<component name="Name" class="NhibernateSample1.UserName,NhibernateSample1">
<parent name="User"></parent>
<property name="FirstName" column="FirstName"></property>
<property name="LastName" column="LastName"></property>
</component>
</class>
</hibernate-mapping>
加载一个CompositeUser对象,结果如图
4. 集合组合依赖
Composite.cs
UserName.cs
映射文件CompositeUser.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="NhibernateSample1.CompositeUser,NhibernateSample1" table="CompositeUser" lazy="false">
<id name="Uid" column="Uid" unsaved-value="0">
<generator class="native" />
</id>
<set name="UserNames" table="UserNames" lazy="true">
<key column="Uid"/>
<composite-element class="NhibernateSample1.UserName,NhibernateSample1">
<property name="FirstName" column="FirstName"></property>
<property name="LastName" column="LastName"></property>
</composite-element >
</set>
<property name="BirthDay" type="DateTime"></property>
</class>
</hibernate-mapping>
注意:Composite可以包含集合也可以不包含集合,上面这样的配置就不包括集合,映射的属性可以选择为List,map,bag,idbag<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="NhibernateSample1.CompositeUser,NhibernateSample1" table="CompositeUser" lazy="false">
<id name="Uid" column="Uid" unsaved-value="0">
<generator class="native" />
</id>
<set name="UserNames" table="UserNames" lazy="true">
<key column="Uid"/>
<composite-element class="NhibernateSample1.UserName,NhibernateSample1">
<property name="FirstName" column="FirstName"></property>
<property name="LastName" column="LastName"></property>
</composite-element >
</set>
<property name="BirthDay" type="DateTime"></property>
</class>
</hibernate-mapping>
运行添加一个Composite的测试代码,会在数据库中建立两个数据表 CompositeUser和UserNames
效果图
- nhibernate学习之集合组合依赖
- nhibernate学习之集合组合依赖
- nhibernate学习之集合组合依赖
- nhibernate学习之简单组合的映射
- nhibernate学习之简单组合的映射
- [NHibernate]组件之依赖对象
- NHibernate 边学习边总结 之NHibernate中的集合类型区分
- NHibernate学习之旅
- NHibernate学习之-配置
- 跟NHibernate之夏一起学习NHibernate
- Nhibernate学习之起步篇
- Nhibernate学习之起步篇
- NHibernate之旅(8):巧用组件之依赖对象
- NHibernate之旅(8):巧用组件之依赖对象
- NHibernate之旅(8):巧用组件之依赖对象
- UML学习之 依赖、关联、聚合、组合的联系与区别
- 面向对象之依赖、关联、聚合、组合
- 面向对象之依赖、组合、聚合
- 使用CSS样式控制浏览器滚动条的参数总结【zz】
- Nhibernate学习之性能改善1
- GridView实用代码
- nhibernate性能之二级缓存篇
- nhibernate学习之简单组合的映射
- nhibernate学习之集合组合依赖
- VC++中MFC窗口对象的清除
- Thread1
- Thread2
- 计算机人生
- qwt5 的编译和使用注意事项
- 介绍ASP.NET页面之间数据传递的几种方法,并介绍一些这些方法的优缺点?
- 华为面经记
- Save could not be completed.MyEclipse国际化的问题解决