2010-02-13 97 views
0

我有一个叫'工具'的类。工具具有如下属性:名称,描述和一些特定的其他属性。工具是特殊的,因为名称和其他是只读的,但描述可以由用户修改。实体,价值对象还是它应该是什么?

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

我正在寻找可能采取的工具,像这样:

Tool.SomeGreatTool 

其中SomeGreatTool是工具名称为“一些伟大的工具”,并描述应该是这样的用户指定的相同。

Jimmy Bogard has solution almost perfect但NHibernate知道SomeGreatTool的任何内容,并且说明将为空。

如何修改Jimmy的解决方案或如何以不同的方式做到这一点?如何从数据库实例化SomeGreatTool?

+0

我能说什么......并非所有的答案都适合我的解决方案:( – dariol 2010-02-14 22:37:29

回答

1

我们仍将这些类型的半常量数据视为一种众所周知的实体。我们为工具类型创建值对象/枚举类,但是从工具中分离工具类型。你仍然需要去持久存储库来做类似ToolRepository.Find(ToolType.Screwdriver)的事情。即使每个工具类型只有一个工具,但仍然会将这两个概念分开。

+0

非常感谢:) – dariol 2010-02-17 17:49:38