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
lubRss20FeedFormatter
i 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
?