为什么 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。这是因为如果不指定时区可能会出现问题。其实有一个公开讨论是否应该支持。
请参阅此参考资料:
- SO Q&A: How to get Web API OData v4 to use DateTime
- OData V4 service should support DateTime #136
- OData V4 service should not support DateTime
如果检查这些问题,您会发现对 DateTime 的支持已添加到版本 5.6.0 beta 1 中。
这是一个Issue, and it's been fixed in 5.6.0 beta1,请尝试一下,如果问题仍然存在,请为我们提交问题:)。
我已经使用 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。这是因为如果不指定时区可能会出现问题。其实有一个公开讨论是否应该支持。
请参阅此参考资料:
- SO Q&A: How to get Web API OData v4 to use DateTime
- OData V4 service should support DateTime #136
- OData V4 service should not support DateTime
如果检查这些问题,您会发现对 DateTime 的支持已添加到版本 5.6.0 beta 1 中。
这是一个Issue, and it's been fixed in 5.6.0 beta1,请尝试一下,如果问题仍然存在,请为我们提交问题:)。