C# Microsoft OData无法在$filter(v7)中仅使用日期

C# Microsoft OData无法在$filter(v7)中仅使用日期,c#,rest,api,odata,C#,Rest,Api,Odata,这在ODataV6中起作用,但现在在v7中抛出了一个错误 $filter=CreateDateUtc gt 2014-06-23 在上面的示例中,CreateDateUtc将是一个DateTimeOffset。我不确定版本之间发生了什么变化,破坏了这一功能 返回的错误为“URI中指定的查询无效。在类型“Microsoft.OData.Edm.Date”和“System.Nullable`1[System.DateTimeOffset]”之间未定义强制运算符。” 我尝试升级到v7.5,但没有解决

这在ODataV6中起作用,但现在在v7中抛出了一个错误

$filter=CreateDateUtc gt 2014-06-23
在上面的示例中,CreateDateUtc将是一个DateTimeOffset。我不确定版本之间发生了什么变化,破坏了这一功能

返回的错误为“URI中指定的查询无效。在类型“Microsoft.OData.Edm.Date”和“System.Nullable`1[System.DateTimeOffset]”之间未定义强制运算符。”

我尝试升级到v7.5,但没有解决问题

我可以编写自定义代码来处理这个问题,但我不知道应该从哪里开始。我尝试使用自定义ODataUriResolver覆盖PromoteBinaryOperandTypes方法,但似乎不起作用。在修改实际查询的地方创建自定义EnableQueryAttribute的最佳方法是什么


任何指导都会非常有用。

OData无法将常数转换为日期时间,因为它需要一个完整的日期时间常数:

$filter=CreateDateUtc gt 2014-06-23T00:00:00Z
或者可以使用date()函数将属性转换为日期:

$filter=date(CreateDateUtc) gt 2014-06-23

我昨天提出了一个类似的答案,但OP正在寻找一个服务器端解决方案,这样客户端(请求)就不需要更改。