C# 如何清除IQueryable结果集上的默认select子句

C# 如何清除IQueryable结果集上的默认select子句,c#,linq,C#,Linq,如果我有一个返回IQueryable结果集的page类,如: protected virtual IQueryable<EntityResult> GetEntities(ETBDataContext pContext) { return from e in pContext.Entities where e.SectionId == SectionId && e.StatusCode == "Published"

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

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
               };
    }
受保护的虚拟IQueryable GetEntities(ETBDataContext pContext)
{
从pContext.Entities中的e返回
其中e.SectionId==SectionId&&e.StatusCode==“已发布”
orderby e.PublishDate降序
选择新EntityResult
{
EntityId=e.Id,
节选,
Name=e.Name,
PublishDate=e.PublishDate,
ShortDescription=e.ShortDescription
};
}
如果在继承类中调用此方法,如何清除select并仅获取简短描述

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;
}
public void IQueryable GetResult(ETBDataContext pContext)
{
IQueryable pQuery=base.GetEntities(pContext);
//在这里:我怎么能只返回简短的描述?
返回查询;
}
我正在使用default GetEntities()为默认查询执行标准的select操作,但在某些调用中,我只希望获得所需的特定数据

这可能吗?还有其他方法吗?提前谢谢

你可以试试

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

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

我试过了,表达式仍然显示其他列:“shows”是什么意思?您无法更改重写函数的返回类型。它仍然为我提供Convert(value(System.Data.Objects.ObjectSet
1[ETB.Entity]).mergas(AppendOnly)。其中(e=>((e.SectionId==value(ASP.rvs_aspx.SectionId)和also(e.StatusCode==Published)).OrderByDescending(e=>e.PublishDate)。选择(e=>new EntityResult(){EntityId=e.Id,extract=e.extract,Name=e.Name,PublishDate=e.PublishDate,ShortDescription=e.ShortDescription,})。选择(r=>new f_u匿名类型0
1(ShortDescription=r.ShortDescription))作为expression@oledu.com:我怀疑EF会忽略额外的列。是的,但我可以基于EntityResult返回另一个结果集