实体,价值对象或它是什么以及应该在哪里?

时间:2010-02-13 11:12:57

标签: nhibernate repository entity value-objects

我有一个名为'工具'的课程。工具具有以下属性:名称,描述和一些特定的其他属性。工具很特殊,因为Name和其他工具是只读的,但用户可以修改说明。

工具的数量是不变的并且在开发时已知。它不是值对象,因为我需要查询它们并向用户显示它们可以更新描述的位置。所以,它是一种实体,但用户无法创建新的工具。

我正在寻找像这样的工具的可能性:

Tool.SomeGreatTool

其中SomeGreatTool是名为“Some great tool”的工具,描述应与用户指定的相同。

Jimmy Bogard has solution almost perfect但是NHibernate知道SomeGreatTool和Description的任何内容都是null。

如何修改Jimmy的解决方案或如何以不同方式执行?如何从数据库中实例化SomeGreatTool?

1 个答案:

答案 0 :(得分:1)

我们仍将这些半常数数据视为一种众所周知的实体。我们为工具类型创建值对象/枚举类,但是从工具中创建单独的工具类型。您仍然需要转到持久性存储来执行类似ToolRepository.Find(ToolType.Screwdriver)的操作。即使每个工具类型只有一个工具,您仍然将这两个概念分开。

相关问题