如何选择一条记录(按降序排序)?

时间:2016-02-23 14:44:48

标签: c# linq-to-sql

我使用LINQ-TO-SQL。我有一个控制订单。在控件中我有一个属性OrderDetail。我只想显示最新更新的数据。所以我必须通过ChangedAt订购。这是一个DateTime字段。

当我尝试打开这个实体时。我收到错误,如指定的强制转换无效,而我通过调试看到选择有1行。

如何选择一条记录,按降序排序(ChangedAt)?

两个实体之间的关系订单:OrderDetail< => 1:n。

partial class Order : ILock, ICloneable
{
   ...
    public OrderDetail Detail
    {
        get
        {
            var detail = this.OrderDetails.Select(od => od);

            if (detail != null && detail.Count() > 0)
                return detail.OrderByDescending(od => od.ChangedAt).FirstOrDefault();
            else
                return null;
        }
    }

我认为这不重要。但我使用SQL-Server作为数据库。

1 个答案:

答案 0 :(得分:1)

您只需执行此操作即可获得列表中的第一条记录,按ChangedAt降序排列:

public OrderDetail Detail
{
    get
    {
        return this.OrderDetails
            .OrderByDescending(od => od.ChangedAt)
            .FirstOrDefault();
    }
}

不需要在LINQ中检查实体/ SQL,因为内部表达式解析器会为您处理此事。