如何清除IQueryable结果集上的default select子句

时间:2012-11-21 01:11:01

标签: c# linq

如果我有一个返回IQueryable结果集的页面类,如:

protected virtual IQueryable<EntityResult> GetEntities(ETBDataContext pContext)
    {
        return from e in pContext.Entities
               where e.SectionId == SectionId && e.StatusCode == "Published"
               orderby e.PublishDate descending
               select new EntityResult
               {
                   EntityId = e.Id,
                   Excerpt = e.Excerpt,
                   Name = e.Name,
                   PublishDate = e.PublishDate,
                   ShortDescription = e.ShortDescription
               };
    }

如果我在继承的类中调用此方法,如何清除select并获取ShortDescription?

public void IQueryable<EntityResult> GetResult(ETBDataContext pContext)
{
    IQueryable<EntityResult> pQuery = base.GetEntities(pContext);

    //right here: how can I just return the ShortDescription Only?

    return pQuery;
}

我使用默认的GetEntities()为默认查询执行标准选择操作,但在某些调用中,我想获得我需要的特定数据。

这可能吗?还有其他方法吗?在此先感谢!!

1 个答案:

答案 0 :(得分:3)

你可以尝试

pQuery = pQuery.Select(e => new EntityResult { 
    ShortDescription = e.ShortDescription 
});

我很确定这不会选择其他列。