在实体中存储其他数据

时间:2011-10-27 01:00:35

标签: nhibernate entity dto

假设我有以下实体:Location& Product

Locations有尺寸(长度,宽度,高度),Products也是如此。 Locations包含一个或多个Products。基本上我需要获得一堆Locations并根据它们的尺寸进行计算,并ProductsLocation剩余的房间留在特定位置。我需要基本上存储此值(剩余空间量)并根据此值对Locations进行排序。

我应该在哪里存储此值?

我应该将它作为一个未映射到数据库中任何内容的属性存储在Location实体本身吗?这似乎是不好的做法,但很容易做到。< / p>

我是否应该为此创建一个包含此附加属性和其他位置数据的DTO(这种方案对于此方案似乎有很多额外的工作)

我是否应该创建一个基本上具有这个附加属性和实际内部Location实体的包装器?

1 个答案:

答案 0 :(得分:0)

对我来说,似乎数据是对象本身固有的,所以我认为将它添加到Location类是完全合适的。

我只是将它设置为Location类的惰性属性。它只应在需要时计算,并且可能会触发Location的产品集合的延迟加载。

如果你愿意,可以将它映射到表列,这样当NHibernate刷新时,它总会写出最新的值。这样,您就可以在查询中使用它来进行数据库级别的排序和过滤。