.Net微服务实战之必须得面对的分布式问题 (2)

  先调用订单服务得到订单列表后,再根据订单列表的用户ID集合调一次用户服务查询出用户列表。再通过内存遍历把订单列表与用户列表在业务层整合。

  优点,实现简单;缺点,也是简单,该方案只能适合简单的查询过滤,以主表为驱动的关联。

public async Task<List<Order>> GetOrder() { //订单集合 var orderList = await _order.GetList(); //userId集合 var userIds = orderList.Select(a => a.UserId).ToList(); //关联用户集合 var users = await _user.GetByIds(userIds); //应用层数据聚合关联 orderList.ForEach(order => { order.Name = users.FirstOrDefault(a => a.UserId == order.UserId)?.Name; }); return orderList; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydfxs.html