假设我有以下实体:Location
& Product
Locations
有尺寸(长度,宽度,高度),Products
也是如此。 Locations
包含一个或多个Products
。基本上我需要获得一堆Locations
并根据它们的尺寸进行计算,并Products
在Location
剩余的房间留在特定位置。我需要基本上存储此值(剩余空间量)并根据此值对Locations
进行排序。
我应该在哪里存储此值?
我应该将它作为一个未映射到数据库中任何内容的属性存储在Location
实体本身吗?这似乎是不好的做法,但很容易做到。< / p>
我是否应该为此创建一个包含此附加属性和其他位置数据的DTO(这种方案对于此方案似乎有很多额外的工作)?
我是否应该创建一个基本上具有这个附加属性和实际内部Location
实体的包装器?
答案 0 :(得分:0)
对我来说,似乎数据是对象本身固有的,所以我认为将它添加到Location类是完全合适的。
我只是将它设置为Location类的惰性属性。它只应在需要时计算,并且可能会触发Location的产品集合的延迟加载。
如果你愿意,可以将它映射到表列,这样当NHibernate刷新时,它总会写出最新的值。这样,您就可以在查询中使用它来进行数据库级别的排序和过滤。