2

次のような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()を使用して、デフォルトのクエリの標準の選択操作を実行していますが、一部の呼び出しでは、必要な特定のデータのみを取得したいと考えています。

これは可能ですか?他の方法はありますか?前もって感謝します!!

4

1 に答える 1

3

あなたが試すことができます

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

これで他の列が選択されないことは間違いありません。

于 2012-11-21T01:12:18.853 に答える