没有IQueryable的OData

时间:2013-05-01 15:22:02

标签: asp.net-web-api odata ado.net-entity-data-model

我正在考虑将OData用于我的Web服务(基于Web API)。不幸的是,我的数据源不是IQueryable。而不是实现我自己的IQueryable我几乎遵循this blog post

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

example中,我看到我应该从EntitySetController派生,以获得符合OData的HTTP响应。我相信我不能使用EntitySetController,因为我不支持IQueryable。为了得到适当的回应,我该怎么做?

1 个答案:

答案 0 :(得分:4)

您可以自己构建EDM模型。您可以使用ODataConventionModelBuilder类来构建EDM模型。这个tutorial有一些示例代码。 另外,从here检出OData上的样本,尤其是ODataServiceSample和ODataCompositeKeySample。他们应该让你开始。

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