[英]Mapping normalized database tables to classes
我正在开发一个简单的在线订购应用程序,并且已经有一个使用规范化的数据库模式设计。
其中,有 3 个表: order 、 product和order_d (表示订单详细信息)。
这些是 map 到表的类(我使用 PetaPoco 作为我的 ORM):
public class order {
[PrimaryKeyColumn]
public int o_id { get; set; }
// order info
}
public class product {
[PrimaryKeyColumn]
public int p_id { get; set; }
// product info
}
public class order_d {
[PrimaryKeyColumn]
public int od_id { get; set; }
[ForeignKey(typeof(order), Column = "o_id")]
public int id_order { get; set; }
[ForeignKey(typeof(product), Column = "p_id")]
public int id_product { get; set; }
public int product_quantity { get; set; }
}
现在,当我想在前端显示订单时,我必须从 order 和 order_d 表中获取记录并将它们连接到单个对象/实体上:一个订单,我们可以说是域 model (如果我'我错了:P)。
在我看来,它看起来像这样。
我一直在阅读有关存储库模式的信息,据我了解,将其应用于我的项目看起来像这样。
我对此有几个问题:
希望我没有过度简化任何事情。 谢谢。
在我看来,您不必加入 Order 和 Order_d 表,您的 ORM 应该这样做。 您将以这种方式获得的 Order object 将是域 model 或至少与其一致,因此如果您域中的 Order 具有非持久性属性或其他行为,您可以考虑为这些部分创建部分 ZA2F2ED4F8EBC2CBB4C21A29DZ0。
我认为您不需要存储库模式实现,因为您没有提到真正需要将数据访问与域逻辑分开。 请记住,您的数据访问权限是由您的 ORM 提供的,因此在您使用 ORM 之后对这些对象执行的任何操作都没有多大意义。 老实说,我不相信你有一个很好的人选来实现这个模式。 如果您想很好地在不同的 ORM 之间跳转,那就另当别论了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.