Zapytania OData i typy inne niż IQueryable w interfejsie API ASP.NET

Buduję aplikację ASP.NET Web API, która zwraca kanał Atom lub RSS. Aby to zrobić, budujeSystem.ServiceModel.Syndication.SyndicationFeed i zwyczajMediaTypeFormatter jest odpowiedzialny za obsługę nagłówka HTTP Accept Header, konwersjęSyndicationFeed albo doAtom10FeedFormatter lubRss20FeedFormatteri przesyłanie wyniku do strumienia odpowiedzi. Jak na razie dobrze.

Mój kontroler wygląda mniej więcej tak:

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

Chciałbym skorzystać z wbudowanego zapytania OData, aby filtrować mój kanał, ale zmienić typ powrotuGet() metoda doIQueryable<SyndicationFeed> oczywiście nie będzie działać, ponieważSyndicationFeed nie implementujeIQueryable.

Czy istnieje sposób na użycie wbudowanego zapytania OData naIEnumerable<SyndicationItem> nieruchomość naSyndicationFeed?

questionAnswers(3)

yourAnswerToTheQuestion