在没有实体框架的情况下构建OData API

时间:2015-10-06 13:53:13

标签: java c# rest architecture odata

我有一个现有的Web表单项目,它包含3个不同的项目:UI层(Web项目),业务逻辑层和数据库项目。我已经编写了连接到数据库并将数据返回到业务逻辑层的数据访问方法。

现在我们需要提供一个REST API,我正在考虑使用oData API和REST。但是我见过的所有示例都使用了Entity Framework,我只是不能使用Entity Framework,因为我们的数据访问层将数据返回给业务层,然后业务层处理该数据并添加一些逻辑,然后将其呈现给UI层。

我还可以使用oData API吗?如果是,那么我是否需要为oData API的每个复杂查询手动创建新方法? OData API如何访问我的BL Layer?

1 个答案:

答案 0 :(得分:2)

你可以这样做(我自己也做过类似的事情),但这是非常艰苦的工作。

对我而言,OData总是感觉像是通过Web服务公开实体框架的一种方式,所以如果你在没有实体框架的情况下尝试实现它,你最终会花费大量时间将查询解析到数据访问层。

如果您决定沿着这条路走下去,也许只考虑实施OData规范的一部分 - 找出您真正希望能够使用的部分 - 因为它很庞大且任务艰巨。

这些仅来自我的经验,您可能拥有比我开始时更好的数据访问层API设置,这可以使事情变得更加容易。

编辑回答最后一个问题:

您是否需要为oData API的每个复杂查询手动创建新方法?这实际上取决于您的数据将如何公开以及如何设置数据访问层。