这是我在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查询对象树。