Kendo Grid Server Side过滤不适用于DateTime列

时间:2018-11-16 11:34:26

标签: asp.net-core kendo-grid entity-framework-core kendo-asp.net-mvc razor-pages

我正在使用启用了可过滤选项的DateTime列。当我在此列上应用过滤器时,request.Filters具有有效的DateTime,但在调用SQL Server时将应用不兼容的格式。这是我的代码:

public async Task<JsonResult> OnGetDataAsync([DataSourceRequest]DataSourceRequest request, CustomFilterModel customFilters)
{
    IQueryable<DAL.Product> products = this.productService.GetByCriteria(customFilters);

    JsonSerializerSettings jsonSettings = new JsonSerializerSettings()
    {
        ContractResolver = new DefaultContractResolver()
    };

    return new JsonResult(await products.ToDataSourceResultAsync(request), jsonSettings);
}

这是EF生成的内容:(为清楚起见,缩写为

SELECT ....
WHERE [p].[DateAdded] <= '2018-10-01T00:00:00.0000000'

错误::System.Data.SqlClient.SqlException(0x80131904):从字符串转换日期和/或时间时转换失败。

基本上,当我直接在SSMS中运行它时,生成的SQL查询不起作用。仅当我将日期转换为'2018-10-01T00:00:00'

时才有效

技术堆栈:.NET Core 2.2,Razor Pages,Kendo 2018.3.911,SQL 2018

0 个答案:

没有答案