Pergunta

Eu tenho 2 listas e preciso saber se há alguma correspondência. Eu tentei usar request.Interests.Intersect(x.Post.Tags.Split(' ')).Count() > 0 Mas eu recebo o erro

System.NOTImplementEdException: O método se cruze não é implementado.

Então, tentei uma função recursiva que retorna um bool. E é como se a chamada de função fosse apenas ignorada.

Aqui está minha função

private bool GenerateInterestsExpression(string postTags, string[] interests)
        {
            if (interests.Length == 0)
                return false;

            string interest = interests[0];

            var newInterests = interests.ToList();
            newInterests.Remove(interest);

            return GenerateInterestsExpression(postTags, newInterests.ToArray()) || postTags.ToLowerInvariant().IndexOf(interest.ToLowerInvariant()) >= 0;
        }

Aqui está a aparência da peça relevante da minha expressão LINQ.

request.Profile.Tags.Count == request.Interests.Length

                                        ||

                                        (
                                            request.Profile.Tags.Count != request.Interests.Length

                                            &&

                                            x.Post.Tags != String.Empty

                                            &&

                                            (
                                                GenerateInterestsExpression(x.Post.Tags, request.Interests)
                                                                                           )
                                        )

Quando o GenerateIntersexpression tem um ponto de interrupção, ele não pausa. Tentei construir uma função recursiva para construir a expressão em tempo real, mas não consigo descobrir como encadear as expressões LINQ. Alguma idéia de como fazer isso com o dinâmico LINQ para Linq para Nibernatar?

Foi útil?

Solução

Eu tive que alterá -lo para usar o HQL e criar dinamicamente a consulta HQL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top