Здравствуйте. У меня есть таблица в postgresql, и я хочу запросить таблицу, чтобы получить PublisherName, начинающееся с данной буквы. Допустим, Тони, если пользователь вводит T или t, я должен отправить обратно Тони, поэтому мне нужен запрос без учета регистра
Вот часть кода, с которой я работаю
[HttpGet("{letters}")]
public async Task<List<Publisher>> getPublisher(string letters){
using(var context = new BookStoresDbContext()){
return await context.Publishers.Where(x=>x.PublisherName.StartsWith(letters)).ToListAsync();
}
}
Это работает нормально, но у меня есть Тони в моей базе данных, поэтому, если пользователь вводит T, все хорошо, но если он вводит t, он возвращает пустой список
Теперь я изменил код на этот
[HttpGet("{letters}")]
public async Task<List<Publisher>> getPublisher(string letters){
using(var context = new BookStoresDbContext()){
return await context.Publishers.Where(x=>x.PublisherName.StartsWith(letters,StringComparison.OrdinalIgnoreCase)).ToListAsync();
}
}
Добавление StringComparison.OrdinalIgnoreCase, но я думаю, что ему трудно переводить этот запрос для postgresql, потому что я получаю эту ошибку на почтальоне
System.InvalidOperationException: The LINQ expression 'DbSet<Publisher>
.Where(p => p.PublisherName.StartsWith(
value: __letters_0,
comparisonType: OrdinalIgnoreCase))' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.
at Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.<VisitMethodCall>g__CheckTranslated|8_0(ShapedQueryExpression translated, <>c__DisplayClass8_0& )
Как я могу решить эту проблему?