NHibernate文档翻译 第6章----关联映射

第6章 关联映射

目录

简介 单向关联
多对一(many to one) 一对一(one to one) 一对多(one to many)
使用表连接的单向关联
一对多(one to many) 多对一(many to one) 一对一(one to one) 多对多(many to many)
双向关联
一对多(one to many) / 多对一(many to one) 一对一(one to one)
使用表连接的双向关联
一对多(one to many) / 多对一(many to one) 一对一(one to one) 多对多(many to many)
简介

单向关联是最常用的也是最难正确使用的。在本章中会逐个经历规范的案例, 从单向映射开始,然后涉及双向的案例。我们会在所有的例子中使用PersonAddress。例子中没有包括命名空间和程序集,我们把关注点放在重要的方面。

我们通过是否使用表连接和多样性(单向或双向)分类关联。

在传统的数据模型中允许为空的外键是不实用的,所以我们的例子中没有使用允许为空的外键。在NHibernate中这不是必须的,如果你删除空值的约束, 映射会照常工作。

单向关联

 

多对一(many to one)

 

一对一(one to one)

 

一对多(one to many)

 

使用表连接的单向关联

 

一对多(one to many)

 

多对一(many to one)

 

一对一(one to one)

 

多对多(many to many)

 

双向关联

 

 

一对多(one to many) / 多对一(many to one)

双向的一对多(one-to-many)关联是普通的关联类型。(这是标准的parent/child关系。)

<class name="Person">
 <id name="Id" column="personId">
  <generator class="native" />
 </id>
 <many-to-one name="Address"
  column="addressId"
  not-null="true"
 />
</class>
<class name="Address">
 <id name="Id" column="addressId">
  <generator class="native" />
 </id>
 <set name="People" inverse="true">
  <key column="addressId" />
  <one-to-many class="Person" />
 </set>
</class>
create table Person 
(
 personId bigint not null primary key,
 addressId bigint not null
)
create table Address
(
 addressId bigint not null primary key
)
 
一对一(one to one)

 

使用表连接的双向关联

 

一对多(one to many) / 多对一(many to one)

 

一对一(one to one)

 

多对多(many to many)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值