开发者

working with IQueryable; not working

I'm using linq-to-EF and I have this:

public IQeuryable<base01> GetData()
{
   var u = this.ObjectContext.base01;

   IQueryable<base01> u2 = u.OrderBy(o => o.article)
           .Select(l => new { Id = l.Id, article = l.article, lot = l.lot}) 开发者_运维问答as IQueryable<base01>;

   return u2;
}

Basically, u contains the result of a query and I'm looking to sort and rearrange the columns. When I replace return u2 with return u I get what the result set filled but whe I go for return u2 I get a null.

What's the problem that I'm not seeing?

Thanks.


as IQueryable<base01>

The problem is as - you are projecting to an anonymous type in your query not to base01 - so as will return null. Instead create new instances of base01 in your projection and remove the as operator:

IQueryable<base01> u2 = u.OrderBy(o => o.article)
                         .Select(l => new base01()
                          { Id = l.Id, article = l.article, lot = l.lot });

Edit:

If u is already an IQueryable<base01> and base01 is one of your entities you do not need the Select() projection at all since you already have the type you want:

IQueryable<base01> u2 = u.OrderBy(o => o.article);
return u2;


You cannot cast this way, use code below.

IQueryable<base01> u2 = u.OrderBy(o => o.article) 
       .Select(l => new base01 { Id = l.Id, article = l.article, lot = l.lot});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜