using (var context = new Model1Container())
{
var posts = context.Posts.
All((p)=> p.Votes.All((v) => v.VoteTypeId!=4));
//Or
var posts2 = from p in context.Posts
where p.Votes.All((v)=> v.VoteTypeId != 4)
select p;
}
Обновление:
Исходя из моего понимания, вам нужны все посты, но для каждого поста вы хотите отфильтровать комментарии, в этом случае вы можете использовать ToDictionary
:
var posts =
context.Posts.
//Include("Comments").
ToDictionary(
(p) => p,
(p) => p.Comments.Where((c)=> c.Votes.All((v) => v.VoteTypeId !=4))
);
foreach (var item in posts)
{
var post = item.Key;
var comments = item.Value;
}
Примечание: раскомментируйте метод Include
, если отложенная загрузка отключена, и вы явно хотите загружать комментарии в этом запросе.
Update2:
var postsCollection = posts.Keys.ToArray();
var commentsCollection = posts.Values.ToArray();