日期:2014-05-18  浏览次数:20431 次

面象对象时,数据库不能保存“对象”而只能保存“对象编号”,那请问如何完美的将数据库中的“对象编号”与逻辑中使用的“对象”关联起来?
一个很简单的例子,一张售货单(Bill对象)上,必然有一个或多个商品(Product对象数组);
但在数据库中,这些商品只能以编号的形式保存(我用的是GUID)

那问题来了:在设计实体类时,各位是将“一个或多个商品”设计成类似 List<string> ProductGUIDs,以体现“商品的编号”的集合,
还是将“一个或多个商品”设计成类似 List<Product> Products,以体现“商品”的集合?

因为实体类和数据库紧密关联,所以我用的是 ProductGUIDs 体现“商品的编号”的集合,但这样在BLL层只能再新建一个 List<Product> Products 的变量来存储与 ProductGUIDs 一一对应的实体集合,这样维护起来很不方便,容易出错,请教更完美的解决办法?


------解决方案--------------------
建议使用List <string > ProductGUIDs,之后可以利用ProductGUID获得<Product > Products.这样层次更鲜明,维护也方便
------解决方案--------------------
在Bill里保存GUID,然后更具GUID构造Product类的实例。
public class Product
{
public Product(GUID guid)
{
...
}
}