условие в том, чтобы включить в linq для юридических лиц - PullRequest
4 голосов
/ 26 марта 2012

У меня есть действительно базовая структура таблицы:

Сообщения

PostXTags

PostTags

Существует связь 1-n между сообщениями, PostXTags и между PostTag, PostXTags

Мне нужно получить все сообщения с их тегами.

В PostTags есть поле с именем type, и я хочу иметь фильтр для него. Каждое условие в том числе встречает эту ошибку:

Выражение «Включить путь» должно ссылаться на свойство навигации, определенное для типа. Используйте пунктирные пути для ссылочных свойств навигации и оператор Select для свойств навигации коллекции. Имя параметра: путь

    Public IQueryable<Post> GetPosts()
    {
        return from p in _db.Posts
               select p;
    }

    var posts = GetPosts().Include(p => p.PostXTags.Select(pxt => pxt.PostTag).Where(pt=>pt.Type == 2)).ToList();

1 Ответ

6 голосов
/ 26 марта 2012

Я думаю, что вы пытаетесь достичь

var posts = _db.Posts.Include("PostXTags.PostTag").
    Where(p => p.PostXTags.Any( pxt => pxt.PostTags.Any( pt => pt.Type == 2 ) ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...