在我正在开展的项目中,需要遵循以下架构(简化):
[WebAPI] - > [WCF - >实体框架] - > [数据库]
我已经看过很多演示版,您可以使用OData语法直接通过WebAPI公开您的实体模型。
我想知道,是否可以通过WebAPI OData服务(前端服务器)公开WCF OData服务(后端服务器),并获得OData过滤带来的好处。
例如:当我在WebAPI(http://domain.com/api/Customers?$filter=country eq 'USA')中过滤国家/地区时,我不希望从WCF获得所有客户。
谢谢!
答案 0 :(得分:0)
如果您指的是WCF数据服务,它已经是支持过滤器的OData服务端点。
e.g:
http://services.odata.org/OData/OData.svc/Categories?$ filter =姓名eq'食物'
如果您的意思是EF支持WCF服务,那么您将使WebAPI OData服务成为WCF服务的代理。只要您可以编写客户端代码来使用WCF服务,这是可行的。
您可以简单地替换ProductsController :: Get中的代码片段,从WCF服务中检索数据,然后在那里返回数据。 [EnableQuery]属性将使查询选项可用。