2011-10-27 49 views
0

比方说,我有以下实体:Location & Product存储在实体额外的数据

Locations有尺寸(长,宽,高)等做ProductsLocations包含一个或多个Products。基本上我需要得到一堆Locations,并根据尺寸计算出Products,在Location处计算剩余空间在特定位置。我需要基本上存储此值(剩余空间量)并根据此值对Locations进行排序。

我应该在哪里存储这个值?

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

我应该为此创建一个包含此附加属性和位置数据其余部分的DTO(这种类似于此场景中的大量额外工作)

我应该创建一个包装,基本上有这一个额外的属性和实际的Location实体里面呢?

回答

0

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

我只是简单地将它作为Location类的一个懒惰属性。它应该只在需要时计算,并且可能会触发延迟加载Location的产品集合。

如果你想要你可以将它映射到一个表列,所以当NHibernate刷新它将始终写出最新的值。这将使您能够在查询中使用它来在数据库级别进行排序和过滤。

相关问题