DDD中的值对象如何用NHibernate进行映射

本文介绍如何使用NHibernate的<component>特性映射DDD中的值对象,通过示例展示如何将数据库表中的地址字段映射为独立的Address对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文: DDD中的值对象如何用NHibernate进行映射

<component/>是NHibernate中一个有趣的特性,即是用来映射DDD(Data-Display-Debuger)概念形式的值类型。这是一种创建比物理数据模型具有更高粒度的对象模型的方式。 
举例,
 
看下表中的数据: 
 
对应的对象模型: 
 
它们十分不同,在一个单一表中包括了所有物理数据,我们想在对象模型中调整为用两个分离的类型来映射该表。这就是<component/>的用法: 
< class  name ="Person"  table ="People" > 
   < id  name ="Id" > 
     < generator  class ="identity" /> 
   </ id > 
   < property  name ="Name"   /> 
   < component  name ="Address" > 
     < property  name ="Line1" /> 
     < property  name ="Line2" /> 
     < property  name ="City" /> 
     < property  name ="Country" /> 
     < property  name ="ZipCode" /> 
   </ component > 
</ class > 
这个映射将会在物理数据模型和对象模型中转换。我们还可以让NHibernate对<component>进行排序并给我们所预期的对象图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值