“Somente argumentos que podem ser avaliados no cliente são suportados pelo método String.Contains”
public static void MyFunction(MyErrorClass err)
{
var query = from filter in DataContext.ErrorFilters select filter;
query = query.Where(f => err.ErrorMessage.Contains(f.ErrorMessage));
List<ErrorFilter> filters = query.ToList();
//...more code
}
Então, estou tendo alguns problemas com o código acima, e estou recebendo o erro da linha de assunto na linha comquery.ToList()
. Aqui está o que estou tentando fazer:
Primeiro, tenho uma classe de erro personalizadaMyErrorClass
. Sempre que um erro ocorre no meu site, eu crio umMyErrorClass
objeto da exceção, armazene todos os dados da exceção nesse objeto e armazene as informações no banco de dados.
Uma das propriedades de exceção que estou acompanhando é a mensagem para o erro (ErrorMessage
). eu tenho umErrorFilters
tabela configurada no banco de dados onde o usuário pode filtrar erros com base naErrorMessage
. Então diga que você está recebendo uma tonelada de erros que dizem "System.Data.SqlClient.SqlException: Timeout expirou. O período de tempo decorrido antes da conclusão da operação ou o servidor não está respondendo.", E você deseja ignorá-los. Você acabou de adicionar um filtro ao banco de dados com o ErrorMessage como "timeout expired" e defini-lo para ignorar.
Agora, minha classe acima está configurada para receber um erro e decidir se o erro deve ser filtrado. Estou tentando obter uma lista de todos os filtros que possuemErrorMessage
combinando com o erro.
Tenho certeza que isso é uma solução fácil, eu simplesmente não sei como consertar isso.