.net – ApiController与ODataController在露出DTO时
当我应该继承我的控制器表单ODataController和ApiController时,有人可以解释我吗?
这个问题是由ApiController返回的结果可以用OData查询过滤的。 如果我将QueraybleAttribute应用于contoller的方法,即使操作返回IEnumerable,查询也被处理。 真正的问题是我的服务暴露了DTO,而不是POCO。可能没有一对一的映射。需要将OData查询重新转换为与POCO的EF查询相对应的DTO。 解决方法
如果要公开一个遵守OData protocol的端点,则需要从ODataController继承。如果要执行其他操作,例如REST端点,则继承自ApiController。 应用WebAPI OData框架的一些部分,但不是其他部分可能不是一个好主意。在某些情况下,可能在其他情况下可能无法正常工作。例如,您可能会获得查询支持,但可能不会生成$ metadata端点(这只是推测,实际的症状可能不同)。 听起来你已经使用了EntityFramework。我知道有许多示例显示如何将其作为OData端点。 如果由于某种原因不想这样做,您可以实现自己的查询。这在this tutorial的几个地方简要介绍,但是要点是添加一个类型为ODataQueryOptions< T>对您的操作,并使用其上的方法过滤您的结果集。但是,为所有可能的OData查询生成好的数据库查询可能会很痛苦,所以如果可能的话应该避免这种情况。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在没有布局页面的情况下将部分脚本添加到asp.net mvc R
- asp.net – 高效地加入Entity Framework Core中另一个表的最
- IIS 7中的应用程序池不显示.NET Framework 3.5
- Response.Redirect在ASP.NET中将数据POST到另一个URL
- 如何在ASP.NET网站项目中使用最新的VB.NET语言级别?
- 在asp.net mvc 5应用程序中缩小html的最佳方法
- .NET Core的日志[5]:利用TraceSource写日志
- 更改ASP.NET网站管理工具连接字符串
- 为ASP.NET应用程序实现后台服务的最佳方法是什么?
- asp.net – 在请求之间检索和持久化状态
- 用Middleware给ASP.NET Core Web API添加自己的授
- asp.net – 无法加载文件或程序集“Microsoft.Te
- 结合 AOP 轻松处理事件发布处理日志
- asp.net(c#)动态修改webservice的地址和端口(动
- ASP.NET MVC配置客户端单点登录CAS
- asp.net-mvc – MVC 4 Web API – 复合键的路由
- 在ASP.NET中如何处理未处理的异常?
- asp.net-mvc – ASP.NET MVC PostAuthorizeReque
- .net – IAuthenticationFilter.OnAuthenticatio
- asp.net-mvc-4 – ASP.NET MVC RemoteAttribute验