Linq to Nhibernate - Сравнить 2 списка - PullRequest
3 голосов
/ 12 августа 2010

У меня есть 2 списка, и мне нужно знать, есть ли совпадения.Я пытался использовать request.Interests.Intersect(x.Post.Tags.Split(' ')).Count() > 0, но я получаю ошибку

System.NotImplementedException: метод Intersect не реализован.

Итак, я попытался рекурсивной функцией, котораявозвращает бул.И это как если бы вызов функции просто игнорировался.

Вот моя функция

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

Вот как выглядит соответствующий фрагмент моего выражения 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)
                                                                                           )
                                        )

Когда GenerateInteresExpression имеет точку останова, он не останавливается.Я пытался создать рекурсивную функцию для построения выражения на лету, но я не могу понять, как связать выражения linq вместе.Любые идеи о том, как сделать это с помощью динамического linq для linq to nhibernate?

1 Ответ

1 голос
/ 13 августа 2010

Мне пришлось изменить его на использование HQL и динамическое построение запроса HQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...