2012-03-26 3 views
4

Я получил это действительно базовую структуру таблицы:условие включают в Linq To образований

Сообщений

PostXTags

PostTags

Существует 1-п соотношение между столбами, PostXTags и между PostTags, PostXTags

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

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

Выражение пути Include должно ссылаться на свойство навигации, определенное для типа. Используйте пунктирные пути для ссылочных навигационных свойств и оператор 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(); 
+0

Что происходит не так? Исключение? Ошибка? Неверные результаты? –

ответ

6

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

var posts = _db.Posts.Include("PostXTags.PostTag"). 
    Where(p => p.PostXTags.Any(pxt => pxt.PostTags.Any(pt => pt.Type == 2)));