返回信息区别

来源:13-6 【应用】获得用户订单

LukeInCanada

2020-08-25

请问为什么请求api/orders的时候"orderItems"里面为空,而请求GetOrderById的时候"orderItems"里面为具体的路线信息?

写回答

1回答

阿莱克斯刘

2020-08-25

这个问题非常好,请注意观察TouristRouteRepository中的函数GetOrdersByUserId()和GetOrderById()

//img.mukewang.com/szimg/5f449c16096988a114360542.jpg

可以看到在获取单个order的时候(GetOrderById),使用了include语句,这里的include其实就是sql语句的join。而在获取order列表的时候(GetOrdersByUserId),并没有进行表链接。所以在调用单个order的时候,我们将会获得更多的数据。

如果你希望在获取order列表的时候也同时获得orderItem,那么你可以在GetOrderById函数中加上.Include(o => o.OrderItems).ThenInclude(oi => oi.TouristRoute),连接OrderItems表和TouristRoute表,这样就可以获得更多数据了。当然过多的表链接会降低效率,所以你需要权衡利弊。


1
0

.Net 开发电商后端API 从0到精通RESTful

. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。

979 学习 · 553 问题

查看课程