Domanda

Ho 2 liste e ho bisogno di sapere se ci sono delle corrispondenze. Ho provato con request.Interests.Intersect(x.Post.Tags.Split(' ')).Count() > 0 ma ottengo l'errore

  

System.NotImplementedException: The   metodo Intersect non è implementato.

Così, ho provato una funzione ricorsiva che restituisce un bool. Ed è come se la chiamata di funzione viene semplicemente ignorato.

Ecco la mia funzione

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

ecco cosa il pezzo rilevante del mio aspetto espressione LINQ come.

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 GenerateInteresExpression ha un punto di interruzione in esso, non mettere in pausa. Ho provato la costruzione di una funzione ricorsiva per costruire l'espressione al volo, ma non riesco a capire come la catena delle espressioni LINQ insieme. Tutte le idee su come realizzare questo con LINQ dinamica per LINQ to NHibernate?

È stato utile?

Soluzione

ho dovuto cambiare per usare HQL e dinamicamente costruire la query HQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top