LINQ查询十进制和返回十进制转换为字符串

时间:2013-03-09 22:03:28

标签: c# asp.net linq entity-framework linq-to-entities

尝试使用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

为什么不将Total作为数字返回?而是一个T-Sql查询?

1 个答案:

答案 0 :(得分: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();
}