我怎样才能 select 一条记录(降序排列)?
How can I select one record (ordered by descending)?
我使用 LINQ-TO-SQL。我有控制令。在控件中我有一个 属性 OrderDetail。我只想显示最后更新的数据。所以我必须通过 ChangedAt 订购。那是一个 DateTime 字段。
当我尝试打开这个实体时。我收到类似 Specified cast is not valid 的错误,而我通过调试看到 selection 有 1 行。
如何 select 一条记录,按降序排列 (ChangedAt)?
两个实体之间的关系 Order : 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 作为数据库。
您可以简单地执行此操作以获取列表中的第一条记录,按 ChangedAt
:
降序排列
public OrderDetail Detail
{
get
{
return this.OrderDetails
.OrderByDescending(od => od.ChangedAt)
.FirstOrDefault();
}
}
不需要在 LINQ to entities/SQL 中进行空检查,因为内部表达式解析器会为您处理。
我使用 LINQ-TO-SQL。我有控制令。在控件中我有一个 属性 OrderDetail。我只想显示最后更新的数据。所以我必须通过 ChangedAt 订购。那是一个 DateTime 字段。
当我尝试打开这个实体时。我收到类似 Specified cast is not valid 的错误,而我通过调试看到 selection 有 1 行。
如何 select 一条记录,按降序排列 (ChangedAt)?
两个实体之间的关系 Order : 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 作为数据库。
您可以简单地执行此操作以获取列表中的第一条记录,按 ChangedAt
:
public OrderDetail Detail
{
get
{
return this.OrderDetails
.OrderByDescending(od => od.ChangedAt)
.FirstOrDefault();
}
}
不需要在 LINQ to entities/SQL 中进行空检查,因为内部表达式解析器会为您处理。