为什么 oData V4 不按日期时间排序?

Why does oData V4 not order on datetime?

我已经使用 Web API 2.2 和 Entity Framework 创建了一个 oData V4 端点。公开的模型类似于以下模型:

public class Items { 
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime CreatedOn { get; set; }
}

当我去 URL 时:/odata/Items 它就像一个魅力。但是,当我转到 URL: /odata/Items?$orderby=CreatedOn 时,出现以下错误:

'The specified type member 'Kind' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.'

OData v4 不支持 DateTime 类型。您应该改用 DateTimeOffset。这是因为如果不指定时区可能会出现问题。其实有一个公开讨论是否应该支持。

请参阅此参考资料:

如果检查这些问题,您会发现对 DateTime 的支持已添加到版本 5.6.0 beta 1 中。

这是一个Issue, and it's been fixed in 5.6.0 beta1,请尝试一下,如果问题仍然存在,请为我们提交问题:)。