查询与Dapper具有n到m关系的实体的最佳方法是什么

时间:2017-09-12 10:51:23

标签: c# dapper

这是我在SQL Server中的数据模型的一部分:

  • 产品
    • 编号
    • 名称
    • ...
  • ProductVariety
    • 编号
    • 名称
    • ...
  • 订单
    • 编号
    • ...
  • Order_Ref_Product
    • 编号
    • ORDER_ID
    • PRODUCT_ID
    • ...
  • Order_Ref_Product_Ref_Variety
    • Order_Ref_Product_Id
    • ProductVariety_Id

我的C#POCO类看起来像这样(我为了简单起见删除了一些杂乱的{get; set;}等等):

class Order {
    List<Product> Products
}

class Product {
    string Name
    List<ProductVariety> Varieties
}

class ProductVariety {
}

为了通过Dapper查询这些,我创建了三个存储库,它们以递归方式相互调用:

  • OrderRepository
    • 按ID选择单个订单
    • 然后调用ProductRepository来解析产品列表。
  • ProductRepository
    • 按Order_Id
    • 选择Order_Ref_Product +产品的连接
    • 然后为每个对象调用ProductVarietyRepository来解析Varieties列表。
  • ProductVarietyRepository
    • 通过Order_Ref_Product_Id
    • 选择Order_Ref_Product_Ref_Variety + ProductVariety的连接

然而,我想知道是否有更好/更清洁/更高效的方式来使用Dapper查询对象树。

0 个答案:

没有答案