Фильтрация на стороне сервера Kendo Grid не работает для столбцов DateTime - PullRequest
0 голосов
/ 16 ноября 2018

Я использую столбец 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): Ошибка преобразования при преобразовании даты и / или времени из символьной строки.

По сути, сгенерированный запрос SQL не работает, когда я запускаю его непосредственно в SSMS. Это работает, только если я преобразую дату в '2018-10-01T00: 00: 00'

Технический стек: .NET Core 2.2, Razor Pages, Kendo 2018.3.911, SQL 2018

...