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>进行排序并给我们所预期的对象图。
原文地址:https://www.cnblogs.com/netfocus/p/2677006.html