2013-03-09 21 views
0

試圖使用LINQ查詢訂單總數和在asp.net其返回的label.TextLINQ查詢小數和返回十進制轉換成字符串

頁面加載:

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查詢?

回答

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(); 
} 
+0

謝謝你的工作 – jackncoke 2013-03-09 22:09:35

相關問題