5

我正在考虑将 OData 用于我的 Web 服务(基于 Web API)。不幸的是,我的数据源不是 IQueryable。我几乎没有实现我自己的 IQueryable,而是遵循了这篇博文。

我不明白的是如何访问我的实体数据模型(EDM)?例如,我是否必须在 Designer 中为 EDM 建模?或者这仅适用于 EF,我可以使用“普通”类并设置关系属性?我不想公开我的内部数据结构,因此我的 EDM 更像是 DTO...

在一个示例中,我看到我应该从 EntitySetController 派生以获得符合 OData 的 HTTP 响应。我相信我不能使用 EntitySetController,因为我不支持 IQueryable。无论如何,我应该怎么做才能得到正确的回应?

4

1 回答 1

4

您可以自己构建 EDM 模型。您可以使用ODataConventionModelBuilder该类来构建您的 EDM 模型。本教程有一些示例代码。此外,从此处查看OData 上的示例,尤其是 ODataServiceSample 和 ODataCompositeKeySample。他们应该让你开始。

此外,如果您没有 ,则IQueryable可以从而ODataController不是EntitySetController.

于 2013-05-02T17:17:04.240 回答