.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-core – 将绝对文件路径转换为相对路径
- 关闭一个子目录的ASP.Net WebForms身份验证
- asp.net-mvc – Knockout JS发送到MVC 3
- ASP.Net核心 – 获取帖子表格的所有数据
- asp.net-mvc – MVC 4 HttpNotFound()和404错误
- asp.net-mvc – ASP.NET MVC自定义错误页面(StatusCode 404
- asp.net – IIS表达请求的执行时间要长4倍
- asp.net-mvc-4 – 多个单选按钮组在MVC 4剃刀
- asp.net – URL重写从/default.aspx到/
- asp.net-mvc – EntityFramework代码在部署到Azure后未运行
