оператор. Благодарю вас.
олчанию ODataController выполняет поиск с учетом регистра. Как мы расширяем это поведение для выполнения поиска без учета регистра.
public class NammaODataController : ODataController
{
[EnableQuery]
public IQueryable<FD> GetFD(ODataQueryOptions qo)
{
return _ctx.FDs.AsQueryAble();
//EF takes care to apply odata query operators internally
//after control passes from action
}
}
Я сослалсяэто ТАК кажется, мы можем использовать Expression Tree, но в какой точке расширяемости?
Можно ли как-то перехватить запрос и настроить EF / Web Api piplelie для достижения этой цели?
Вот пример: / FD? $ Filter = tolower (Pr_Name) eq tolower ('TAMARA') - это должно вернуть всех людей с именем 'Tamara' (без учета регистра, может быть 'TAMARA', 'tamara', 'Tamara', и т.д. Надеюсь, что это поможет, выдвинуть мою точку зрения.
РЕДАКТИРОВАТЬ:
Чувствительность к регистру вODATA Web API queries
не имеет ничего общего с SQL Collation. Это было проблемой с платформой Microsoft OData.
С подстрокой оператора
void Main()
{
var lower = _ctx.FD
.Where(sv => sv.Pr_Name.Contains("tamara"))
.Take(1)
.ToList();
Console.WriteLine("LOWER CASE AZURE SQL OUTPUT");
Console.WriteLine(lower);
Console.WriteLine("UPPER CASE AZURE SQL OUTPUT");
var upper = _ctx.FD
.Where(sv => sv.Pr_Name.Contains("TAMARA"))
.Take(1)
.ToList();
Console.WriteLine(upper);
}
С участиемeq
оператор
void Main()
{
var lower = FD
.Where(sv => sv.Pr_Name == tamara A TOPOLESKI")
.Take(1)
.ToList();
Console.WriteLine("LOWER CASE AZURE SQL OUTPUT");
Console.WriteLine(lower);
Console.WriteLine("UPPER CASE AZURE SQL OUTPUT");
var upper = FD
.Where(sv => sv.Pr_Name == "TAMARA TOPOLESKI")
.Take(1)
.ToList();
Console.WriteLine(upper);
}