从Microsoft.AspNetCore.OData提供程序到SQL Server的日期格式不正确



我使用的是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")] 

属性设置为模型中的属性。

相关内容

最新更新