Why does oData V4 not order on datetime?

2019-08-30 09:51发布

I've created a oData V4 endpoint with Web API 2.2 and Entity Framework. The model that is expose looks like the following model:

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

When I go to the URL: /odata/Items it works like a charm. But when I go to the URL: /odata/Items?$orderby=CreatedOn I get the following error:

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

2条回答
贪生不怕死
2楼-- · 2019-08-30 10:00

This is an Issue, and it's been fixed in 5.6.0 beta1, please try it, if the issue still exist, please file an issue for us :).

查看更多
在下西门庆
3楼-- · 2019-08-30 10:07

OData v4 doesn't suport DateTime type. You should use DateTimeOffset instead. That's because of problems that can happen if you don't specify the time zone. In fact there is an open discussion if it shuld be supported or not.

Please, see this references:

If you check those issues, you'll find that support for DateTime has been added to version 5.6.0 beta 1.

查看更多
登录 后发表回答