0

Linqを使用して注文合計をクエリし、それをラベルとして返そうとしています。asp.netのテキスト

ページの読み込み:

IQueryable<decimal> OrderTotal = GetTotal(orderId);
total.Text = OrderTotal.ToString();

方法:

public IQueryable<decimal> GetTotal(int? orderId)
{
    var q = _db.Orders.Where(x => x.OrderId == orderId).Select(x => x.Total);
    return q;
}

結果:

SELECT [Extent1].[Total] AS [Total] FROM [dbo].[Orders] AS [Extent1] WHERE [Extent1].[OrderId] = @p__linq__0

なぜこれは合計を数値として返さないのですか?代わりにT-Sqlクエリ?

4

1 に答える 1

1

IQueriable<T>インターフェイスは、の単一のインスタンスではなく、のシーケンスを参照しTますT。データベースから単一の値を取得し、単一のテキストボックスをその値に設定しようとしている場合、それは機能しません。

メソッドシグネチャをに変更します

public decimal GetTotal(int? orderId)
{
    var q = _db.Orders.Where(x => x.OrderId == orderId).Select(x => x.Total);
    return q.FirstOrDefault();
}
于 2013-03-09T22:07:47.667 に答える