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

<component/>是NHibernate中一个有趣的特性,即是用来映射DDD(Data-Display-Debuger)概念形式的值类型。这是一种创建比物理数据模型具有更高粒度的对象模型的方式。 
举例,
 
看下表中的数据: 
DDD中的值对象如何用NHibernate进行映射
 
对应的对象模型: 
DDD中的值对象如何用NHibernate进行映射
 
它们十分不同,在一个单一表中包括了所有物理数据,我们想在对象模型中调整为用两个分离的类型来映射该表。这就是<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>进行排序并给我们所预期的对象图。

你可能感兴趣的:(Hibernate)