0

テーブル内の 2 つのフィールドの合計を返すラムダ式があります。問題は、フィールド (ExpectedQuantity) が文字列で、QtyExpected が int であることです。ラムダ式で int.Parse を使用できると思っていましたが、SQL で変換できないというエラーが表示されます。

return new QuantitiesDashboardAggregate()
        {
            QtyExpected = query.Sum(x => int.Parse(x.ExpectedQuantity)),
            QtyReceived = query.Sum(x => int.Parse(x.ReceivedQuantity)),
        };

誰か助けてくれませんか?

クエリ変数の定義方法は次のとおりです。

 IQueryable<Data.POProduct> query = this.Database.POProducts;

        // Apply date range
        DateRange dateRange = new DateRange(args.DateRangeFilter, args.DateRangeCriteria);

        switch (dateRange.DateRangeFilter)
        {
            case DateRangeFilter.Date:
                query = query.Where(po => po.PurchaseOrder.FiscalDate.Date == dateRange.Date);
                break;
            case DateRangeFilter.FiscalWeek:
                query = query.Where(po => (po.PurchaseOrder.FiscalDate.Year == dateRange.Year) &&
                                          (po.PurchaseOrder.FiscalDate.WeekYear == dateRange.Number));
                break;
            case DateRangeFilter.FiscalPeriod:
                query = query.Where(po => (po.PurchaseOrder.FiscalDate.Year == dateRange.Year) &&
                                          (po.PurchaseOrder.FiscalDate.Period == dateRange.Number));
                break;
            case DateRangeFilter.FiscalYear:
                query = query.Where(po => po.PurchaseOrder.FiscalDate.Year == dateRange.Year);
                break;
            default:
                break;
        }
4

1 に答える 1

0

基本的に、Linq to SQL は式を変換できないため.ToList() (or .AsEnumerable())、クエリを呼び出す必要があります。データ drom db がフェッチされ、int.Parse で式を使用できます。

于 2013-09-10T15:18:36.593 に答える