Запросы OData и типы, отличные от IQueryable, в ASP.NET Web API
Я создаю приложение ASP.NET Web API, которое возвращает Atom или RSS-канал. Для этого он строитSystem.ServiceModel.Syndication.SyndicationFeed
и обычайMediaTypeFormatter
отвечает за обработку заголовка HTTP Accept, преобразованиеSyndicationFeed
либоAtom10FeedFormatter
илиRss20FeedFormatter
и потоковую передачу результата в поток ответов. Все идет нормально.
Мой контроллер выглядит примерно так:
public class FeedController : ApiController { public HttpResponseMessage Get() { FeedRepository feedRepository = new FeedRepository(); HttpResponseMessage<SyndicationFeed> successResponseMessage = new HttpResponseMessage<SyndicationFeed>(feedRepository.GetSyndicationFeed()); return successResponseMessage; } }
То, что я хотел бы сделать, это использовать встроенные запросы OData для фильтрации моего канала, но изменив тип возвращаемого значенияGet()
метод дляIQueryable<SyndicationFeed>
очевидно, не будет работать, так какSyndicationFeed
не реализуетIQueryable
.
Есть ли способ использовать встроенные запросы OData наIEnumerable<SyndicationItem>
собственность наSyndicationFeed
?