Я использую столбец 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