4

ビューとLINQを使用していくつかの値を一緒に追加しようとしています。これは以下の私のコードです

var getProducts = from p in Entity.Products
                  join od in getOrderDetails on p.id equals od.productId into proDetails
                  orderby proDetails.Sum(q => q.quantity) descending
                  select new Common.Views.ProductQuantitySold()
                  {
                      productId = p.id,
                      productName = p.name,
                      productDesc = p.description,
                      qtySold = proDetails.Sum(q => q.quantity)
                  };
return getProducts.Take(10).AsQueryable();

その行qtySold = proDetails.Sum(q => q.quantity)で、キャスト値エラーが発生しています。私はそれがヌルまたはゼロについての何かであることを知っていますが、どのようにそれを実装する必要がありますか?

4

3 に答える 3

10

次の行を置き換えてみてください。

qtySold = proDetails.Sum(q => q.quantity)

qtySold = proDetails.Sum(q => (int?)q.quantity) ?? 0
于 2013-01-13T16:18:19.030 に答える
1

コンパイルエラーだと思います。そうでない場合は、コメントを残してください。合計の結果をintまたはにキャストして、のすべての要素をにキャストproDetailsしてみてくださいint

例:

qtySold = (int) proDetails.Sum(q => q.quantity)

または:

qtySold = proDetails.Cast<int>().Sum(q => q.quantity)

動作するかどうか教えてください。

于 2013-01-13T16:17:58.550 に答える
1
qtySold = proDetails.Sum(q => (Int32?)q.quantity) ?? 0
于 2013-01-13T16:23:18.017 に答える