C# 为什么oData V4不按datetime订购?
我已经用WebAPI2.2和实体框架创建了一个ODataV4端点。公开的模型类似于以下模型:C# 为什么oData V4不按datetime订购?,c#,entity-framework,asp.net-web-api,odata,C#,Entity Framework,Asp.net Web Api,Odata,我已经用WebAPI2.2和实体框架创建了一个ODataV4端点。公开的模型类似于以下模型: 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=Cre
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时,我得到以下错误:
LINQ to中不支持指定的类型成员“种类”
实体。仅初始值设定项、实体成员和实体导航
支持属性。”
OData v4不支持日期时间类型。您应该改用DateTimeOffset。这是因为如果不指定时区,可能会发生问题。事实上,无论支持与否,都有一个公开的讨论 请参阅以下参考资料:
如果您检查这些问题,您会发现对DateTime的支持已添加到5.6.0 beta 1版。这是一个,并且已在中修复,请尝试,如果问题仍然存在,请为我们提交一个问题:)。我已经看到了该帖子,但我在显示DateTime方面没有问题。端点返回正确的日期时间。但只有当我尝试按datetime下单时,我才会出现此错误。我在那篇文章中错过了这个问题的解决方案吗?Kind是
System.DateTime
上的一个属性,它描述了它是本地的还是UTC的。