EF Core выборка данных
Есть обработчик:
[HttpGet]
[Route("/ingredients/get")]
public IActionResult Get([FromQuery(Name = "startswith")] string startswith = "",
[FromQuery(Name = "limit")] int limit = 10,
[FromQuery(Name = "offset")] int offset = 0)
{
var request = _db.Ingredients.AsQueryable<Ingredient>();
if (!string.IsNullOrEmpty(startswith))
request = request.Where(x => x.Name.ToLower().StartsWith(startswith.ToLower()));
request = request.Skip(offset);
request = request.Take(limit);
return new OkObjectResult(JsonConvert.SerializeObject(request.ToList()));
}
При отсутствии параметров выборки - все работает. Limit и Offset тоже работают.
Однако, если указывать startswith, то что-то идет не так и вываливается пустой ответ при валидном значении startswith.
Пример:
GET /ingredients/get
[{"Uid":"deee1533-59a8-4b3f-a8fc-19dadd3d4ce7","Name":"Баклажан"},{"Uid":"24e3ae0e-f302-42ed-96d4-d042c7c7bed9","Name":"Яйцо куриное"},{"Uid":"79087d7c-d080-440c-978f-cb17d822794c","Name":"Ветчина"}}]
GET /ingredients/get?startswith=бак
[]
хотя должен был найти баклажан.
Бд: sqlite3
Сгенерированный запрос:
SELECT "i"."uid", "i"."name"
FROM "ingredients" AS "i"
WHERE (@__ToLower_0 = '') OR ("i"."name" IS NOT NULL AND (((lower("i"."name") LIKE @__ToLower_0 || '%') AND (substr(lower("i"."name"), 1, length(@__ToLower_0)) = @__ToLower_0)) OR (@__ToLower_0 = '')))
При этом, если подставить под переменные из сгенеренного запроса значения и выполнить в CLI, то все работает:
- примечание: только с латинскими значениями.
При тестах с кириллицей возникает всё тоже самое:

То-есть, сгенерированный запрос на латинице работает, но не в EF Core. При этом, кириллический не работает в обоих случаях.
Подскажите что делать, пожалуйста ^^
