欢迎光临汤雪华的博客

一个人一辈子能坚持做好一件事情就够了!坚持是一种刻意的练习,不断寻找缺点突破缺点的过程,而不是重复做某件事情。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2012-09-08 21:10  netfocus  阅读(1665)  评论(0编辑  收藏  举报
<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>进行排序并给我们所预期的对象图。