nhibernate - NHibernate 上的值对象的单独表

标签 nhibernate domain-driven-design entity value-objects

我是 DDD 和 NHibernate 的新手。

在我当前的项目中,我有一个实体 Person,其中包含一个值对象,比如说 Address。今天,这很好。但也许有一天我会要求我的值对象(在本例中为地址)必须成为一个实体。

在尝试以 DDD 方式对此建模之前,以更以数据为中心的方法,我有一个表 Person,带有一个 Id,另一个表 Address,其 PK 实际上是一个 FK,它是一个人的 Id(即,一对一的关系)。

我一直在读,当我将一个值对象映射为一个组件时,它的值将被映射为我的实体表上的列(因此,我不会有一对一的关系)。

我的想法是,在需要时,我只需在我的地址表中添加一个代理键,然后它就成为一个实体。

我应该如何使用 NHibernate 设计它?我应该已经让我的地址对象成为实体吗?

抱歉,我什至不知道我的问题是否清楚,我真的迷路了。

最佳答案

在我们正在构建的系统中,我们将值对象放在单独的表中。据我所知,NHibernate 需要一个 id必须添加到对象中,但我们忽略这一点并将对象视为系统中的值对象。您可能知道,值对象是不需要跟踪的对象,因此我们只需忽略 id在对象中。这使我们可以更自由地按照我们想要的方式对数据库进行建模,并按照我们想要的方式对域模型进行建模。

关于nhibernate - NHibernate 上的值对象的单独表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331178/

相关文章:

c# - NHibernate .Query 返回陈旧数据

c# - 使用 Fluent NHibernate 的一对一关系的正确设计是什么?

c# - 如果聚合根是 'IN' 聚合,它如何确保聚合的完整性?

node.js - Nodejs 中的存储库模式

c# - 基于公司而非用户的复杂领域模型

authentication - 使用电子邮件而不是用户名的Symfony2身份验证/登录

entity - 汇总一个实体

c# - 如何创建不同数量的查询?

c# - NHibernate 中的多个连接映射

java - "Remove"对分离实体的操作