我使用的是Microsoft.AspNetCore.OData.
对于url过滤器
?$count=true&$top=100&$filter=Date%20gt%202022-03-17T00:00:00.000Z
输出到SQL Server的OData提供程序是
AND ([q].[Date] > ''2022-03-17T00:00:00.000000'')
这在SQL Server中不受支持。
我得到这个错误:
从字符串转换日期和/或时间时转换失败。
删除最后3个零可以使其在SQL Server中工作。
是否有用于日期格式设置的OData配置?
问题在于EF配置,如果您使用Fluent API,则应添加:
entity.Property(e => e.Date)
.HasColumnType("datetime")
到DbContext中的实体配置。或者:
[Column(TypeName="datetime")]
属性设置为模型中的属性。