2013-05-01 4 views
5

Я подумываю использовать OData для своего веб-сервиса (на основе Web API). К сожалению, мой источник данных НЕ IQueryable. Вместо того, чтобы реализовать свой собственный IQueryable, я в значительной степени следовал this blog post.OData без IQueryable

Что я не понимаю, так это как добраться до моей модели данных объекта (EDM)? Должен ли я моделировать EDM, например, в Designer? Или это только для EF, и я могу вместо этого использовать «простые» классы и установить атрибуты отношения? Я не хочу раскрывать свои внутренние структуры данных, поэтому мой EDM больше похож на DTO ...

В example Я видел, что я должен был получить EntitySetController, чтобы получить HTTP-протокол, совместимый с OData ответ. Я считаю, что не могу использовать EntitySetController, поскольку я не поддерживаю IQueryable. Что я должен делать, чтобы получить правильный ответ?

ответ

4

Вы можете самостоятельно построить модель EDM. Вы можете использовать класс ODataConventionModelBuilder для создания вашей модели EDM. У этого tutorial есть пример кода. Кроме того, проверьте образцы по OData от here, особенно ODataServiceSample и ODataCompositeKeySample. Они должны вас начать.

Кроме того, если у вас нет IQueryable, вы можете исчислить из ODataController вместо EntitySetController.

Смежные вопросы