尝试使用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查询?
答案 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();
}