Возникли проблемы с этим оператором Linq / Lambda :( - PullRequest
0 голосов
/ 10 октября 2010

Обновление - я исправил запрос ниже. У меня был неправильный запрос / ошибка: (

У меня есть следующее утверждение:

var posts = BlogPostRepository.Find()
    .Where(x => x.Tags.Where(y => y.Name == tag))
    .ToList();

Это дает мне ошибку времени компиляции со вторым (внутренним) предложением Where, говоря: -

Ошибка 1 Не удалось преобразовать лямбда-выражение в тип делегата 'System.Func', поскольку некоторые типы возвращаемых данных в блоке неявно не преобразуются в тип возврата делегата

Я пытаюсь отфильтровать все BlogPosts по определенному имени тега.

1 Ответ

2 голосов
/ 10 октября 2010

Эта часть:

  x.Tags.Where(y => y.Name == tag)

вернет IEnumerable из того, что находится в Tags с Name == tag.Затем вы сравниваете это с «истиной», которая не имеет большого смысла.

Возможно, вы хотите этого?

var posts = BlogPostRepository.Find()
    .Where(x => x.Tags.Any(y => y.Name == tag))
    .ToList()

или вместо Любого, Все?

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