返回信息区别
来源:13-6 【应用】获得用户订单

LukeInCanada
2020-08-25
请问为什么请求api/orders
的时候"orderItems"
里面为空,而请求GetOrderById
的时候"orderItems"
里面为具体的路线信息?
写回答
1回答
-
阿莱克斯刘
2020-08-25
这个问题非常好,请注意观察TouristRouteRepository中的函数GetOrdersByUserId()和GetOrderById()
可以看到在获取单个order的时候(GetOrderById),使用了include语句,这里的include其实就是sql语句的join。而在获取order列表的时候(GetOrdersByUserId),并没有进行表链接。所以在调用单个order的时候,我们将会获得更多的数据。
如果你希望在获取order列表的时候也同时获得orderItem,那么你可以在GetOrderById函数中加上.Include(o => o.OrderItems).ThenInclude(oi => oi.TouristRoute),连接OrderItems表和TouristRoute表,这样就可以获得更多数据了。当然过多的表链接会降低效率,所以你需要权衡利弊。
10
相似问题