Entity Framework Core Search с использованием Like - PullRequest
0 голосов
/ 17 июня 2019

У меня есть проблема в Entity Framework Core, использующей linq, когда я пытаюсь запросить данные в базе данных, и я хочу вернуть значения, если предоставленные значения являются нулевыми, в основном, возвращают все данные, если они являются нулевыми, и у них есть фильтр значений, использующий их

Вот SQL, показывающий, как выглядит оператор LIKE

    ALTER PROCEDURE [dbo].[Pokayokes]
      @Action VARCHAR(10)
      ,@ID_Registo INT = NULL
      ,@DataInicio VARCHAR(50) = NULL
      ,@DataFim VARCHAR(50) = NULL
      ,@Referencia VARCHAR(MAX) = NULL
      ,@Procura VARCHAR(MAX) = NULL
      ,@CodigoOperador VARCHAR(MAX) = NULL
AS
BEGIN
      SET NOCOUNT ON;

      --SELECT
    IF @Action = 'PROCURAR'
      BEGIN
        SELECT         
               reg.ID_Antierros,
               pk.Maquina,
               pk.Designacao,
               pk.Objectivo,
               pk.NumeroPokayoke,
               reg.Estado,
               re.Data,
               re.Referencia,
               re.Turno,
               re.Operador
           FROM RegistoAntiErros reg 
           join Registo re on reg.ID_Registo=re.ID_Registo
           join Pokayoke pk on reg.ID_Pokayoke=pk.ID_Pokayoke     
           WHERE re.Data BETWEEN @DataInicio AND @DataFim AND re.Referencia LIKE '%' + @Referencia + '%' AND re.Operador LIKE '%' + @CodigoOperador + '%'
           order by ID_Antierros asc
      END
END

Я пытаюсь сделать что-то похожее с linq

        PokayokesRegistos = _context.PokayokesRegistos
               .Where(pr =>
                   EF.Functions.Like(pr.Registo.Referencia.Nome, "%" + PokayokeRegistoViewModel.Referencia + "%") &&
                   pr.Registo.DataInicioTurno >= PokayokeRegistoViewModel.DataInicio && pr.Registo.DataInicioTurno <= PokayokeRegistoViewModel.DataFim)        
               .OrderByDescending(pr => pr.Id)
               .ToList();

, однако это не работает?до сих пор нет записей Referencia

...