Linq to Entities: как передать IQueryable методу - PullRequest
1 голос
/ 08 февраля 2010

Я действительно сбит с толку этим. Я пытаюсь передать мои сообщения в метод. Как мне поступить так:

var posts = from p in context.post
            where (p.post_isdeleted == false && (object.Equals(p.post_parentid, null))
            select new
            {
                p.post_date,
                p.post_id,
                FavoriteCount = (from f in context.favorites
                                 where f.post.post_id == p.post_id
                                 select new { f }).Count()
            };


posts = QuestionList.FilterQuestion(posts, sort);

//the problem is here
//IQueryable is not the right type for posts. What type do I put in there
private static IQueryable FilterQuestion(IQueryable p, string sort)
{

Ответы [ 2 ]

2 голосов
/ 08 февраля 2010
private static IQueryable<post> FilterQuestion(IQueryable<post> p, string sort)
0 голосов
/ 06 июня 2012

Вы не можете сделать это с анонимными объектами (select new { }).Здесь вам нужно будет указать строгий тип, например:

var posts = from p in context.post
        where (p.post_isdeleted == false && (object.Equals(p.post_parentid, null))
        select new Post
        {
            Date = p.post_date,
            Id = p.post_id,
            FavoriteCount = (from f in context.favorites
                             where f.post.post_id == p.post_id
                             select new { f }).Count()
        };

Здесь вы можете использовать ответ @ Luhmann и строго тип IQueryable.

...