<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>进行排序并给我们所预期的对象图。