2017-03-06 4 views
0

dynamische Liste hinzufügen zur Zeit verwende ich DTO und meine Get-Methode schreiben, die wie folgt aussieht:erstellen und in 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); 
     } 

Das Problem, das ich habe, ist, wie kann ich dynamisch meine Liste initialisieren, wird der Fehler i erhalten ist:

kann nicht implizit Typ 'System.Collections.Generic.IEnumerable' auf 'int' konvertieren.

Ich bekomme, warum das Problem auftritt, aber weiß nicht, wie es zu beheben, danke. Übrigens ist OrdeProducts ein List. hier

Antwort

1

Problem ist:

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

.Select kehrt IEnumerable<int>. Sie versuchen, es einer int zuzuweisen.

Statt Aufzählung, nur um ein int: fehlerlos

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

Thank you so viel, es funktionierte –