0

尝试使用 Linq 查询订单总额并将其作为 label.Text 在 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 查询?

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 回答