Consultas OData e tipos diferentes de IQueryable na API da Web do ASP.NET

Eu estou construindo um aplicativo de API da Web do asp.net que retorna um Atom ou um feed RSS. Para fazer isso, ele cria umSystem.ServiceModel.Syndication.SyndicationFeed e um costumeMediaTypeFormatter é responsável por manipular o HTTP Accept Header, convertendo oSyndicationFeed para umAtom10FeedFormatter ou umRss20FeedFormattere transmitir o resultado para o fluxo de resposta. Por enquanto, tudo bem.

Meu controlador se parece com algo assim:

    public class FeedController : ApiController
    {
        public HttpResponseMessage Get()
        {
            FeedRepository feedRepository = new FeedRepository();
            HttpResponseMessage<SyndicationFeed> successResponseMessage = new HttpResponseMessage<SyndicationFeed>(feedRepository.GetSyndicationFeed());
            return successResponseMessage;
        }
    }

O que eu gostaria de fazer é usar o OData embutido para filtrar meu feed, mas alterando o tipo de retorno doGet() método paraIQueryable<SyndicationFeed> obviamente não vai funcionar desde umSyndicationFeed não implementaIQueryable.

Existe uma maneira de usar o OData construído em consulta noIEnumerable<SyndicationItem> propriedade noSyndicationFeed?

questionAnswers(3)

yourAnswerToTheQuestion