欢迎光临汤雪华的博客

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

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

Posted on   netfocus  阅读(1676)  评论(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>进行排序并给我们所预期的对象图。
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示