Filtragem sensível a maiúsculas e minúsculas OData na API da Web?

Por padrão, o ODataController realiza uma pesquisa que diferencia maiúsculas de minúsculas. Como estendemos esse comportamento para executar uma pesquisa que não diferencia maiúsculas de minúsculas.

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
    }
}

Eu me referieste SO Parece que podemos aproveitar a Expression Tree, mas em que ponto de extensibilidade?

Existe alguma maneira de interceptar a consulta e personalizar o EF / Web Api piplelie para conseguir isso?

Aqui está um exemplo: / FD? $ Filter = tolower (Pr_Name) eq tolower ('TAMARA') - isso deve retornar todas as pessoas com o nome 'Tamara' (sem distinção entre maiúsculas e minúsculas, pode ser 'TAMARA', 'tamara', 'Tamara', etc. Espero que isso ajude, para apresentar meu ponto de vista.

EDITAR:

Caso-senibilidade emODATA Web API queries não tem nada a ver com o agrupamento do SQL. Este foi um problema com a estrutura Microsoft OData.

Com operador substringof

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);
}

Comeq operador

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);
}

questionAnswers(1)

yourAnswerToTheQuestion