2017-03-06 55 views
0

添加动态列表我目前使用DTO的,写我的GET方法,它看起来像这样:创建和的WebAPI 2.0

public async Task<IHttpActionResult> GetOrder() { 
      var order = from x in db.Order 
         select new OrderDTO { 
          OrderId = x.OrderId, 
          orderStatusCode = x.orderStatusCode, 
          OrderProducts = new List<OrderProductDTO> { 
           new OrderProductDTO { 
            OrderId = x.OrderProducts.Select(y => y.OrderId) 
           } 
          }, 
          purchaseDate = x.purchaseDate, 
          quantityOrder = x.quantityOrder, 
          totalOrderPrice = x.totalOrderPrice, 
          User = new UserDTO { 
           UserId = x.UserId, 
           username = x.User.username, 
           userInfo = new UserInfoDTO { 
            adress = x.User.UserInfo.adress, 
            city = x.User.UserInfo.city, 
            country= x.User.UserInfo.country, 
            zip = x.User.UserInfo.zip 
           } 
          } 

         }; 
      return Ok(order); 
     } 

我的问题是我如何动态初始化我的列表,错误我得到的是:

无法将类型 'System.Collections.Generic.IEnumerable'隐式转换为'int'。

我得到为什么问题发生,但不知道如何解决它,谢谢。顺便说一句OrdeProductsList

回答

1

问题是在这里:

new OrderProductDTO { 
    OrderId = x.OrderProducts.Select(y => y.OrderId) 
} 

.Select将返回IEnumerable<int>。您正尝试将其分配给int

而是枚举的,得到的只是一个int

new OrderProductDTO { 
    OrderId = x.OrderProducts.Select(y => y.OrderId).FirstOrDefault() 
} 
+0

太感谢你了,它的工作完美无瑕 –