【问题标题】:LINQ query decimal and return decimal converted to stringLINQ查询十进制并返回转换为字符串的十进制
【发布时间】:2013-03-09 22:03:28
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    IQueriable&lt;T&gt; 接口指的是T 的序列,而不是T 的单个实例。如果您尝试从数据库中获取单个值并将单个文本框设置为该值,那将无法正常工作。

    将您的方法签名更改为

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

    【讨论】:

      猜你喜欢
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多