asp.net – 可以手动将OData参数应用于`.AsQueryable()`的结果?
发布时间:2020-12-16 06:22:59 所属栏目:asp.Net 来源:网络整理
导读:我有一个返回IQueryable的MVC4 WebAPI控制器,因此我可以在URL中使用$filter和friends来操作REST端点的结果.这是我的控制器: public class EnrollmentController : ApiController{ [Queryable] public IQueryabletblEnrollment Get() { var context = new Pr
我有一个返回IQueryable的MVC4 WebAPI控制器,因此我可以在URL中使用$filter和friends来操作REST端点的结果.这是我的控制器:
public class EnrollmentController : ApiController { [Queryable] public IQueryable<tblEnrollment> Get() { var context = new ProjectEntities(); context.ContextOptions.LazyLoadingEnabled = false; return context.tblEnrollment.AsQueryable(); } } 但是,就像this poster一样,我想让JSON输出格式略有不同,以便与Ember Data的预期格式更友好.所以我想回复一下: return new { enrollment = context.tblEnrollment.AsQueryable() }; 但是,这会破坏OData功能,因为我没有将IQueryable返回到WebAPI层.所以,我想知道是否有办法做这样的事情: return new { enrollment = context.tblEnrollment.AsQueryable().ApplyOData() }; 我肯定会成为真正的好方法……但是有没有办法根据IQueryable显式处理OData参数而不是让WebAPI层在Get方法返回的结果集上隐式执行它?还是有另一种方法可以实现我想要的东西吗? 顺便说一句,我暂时停留在EF4上,因为我无法升级到VS2012(因此无法升级到.NET4.5,因此也升级到EF5).理论上我可以升级到EF 4.3.1,如果有帮助的话. 解决方法
您可以添加ODataQueryOptions类型的参数并手动应用,而不是将您的操作标记为[可查询].这是它的样子:
public class EnrollmentController : ApiController { public object Get(ODataQueryOptions<tblEnrollment> query) { var context = new ProjectEntities(); context.ContextOptions.LazyLoadingEnabled = false; var queryResults = query.ApplyTo(context.tblEnrollment.AsQueryable()); return new { enrollment = queryResults }; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – .NET 4.0 ObjectCache的线程安全和范围管理
- asp.net – 如何全局创建CustomPrincipal(使用和不使用Auth
- asp.net – 如何将母版页添加到已创建的webform中?
- asp.net-mvc – ASP.NET MVC 4中没有使用SignalR的服务器到
- asp.net-mvc – ASP.NET MVC ModelMetaData:有没有办法基于
- asp.net-mvc – 看起来你忘了注册HTTP模块与Windsor城堡与I
- ASP.NET标识如何为自定义ApplicationUser添加必需属性?
- 如何在Asp.Net中拦截和预处理QueryStrings
- asp.net-mvc – 使用MiniProfiler与MVC 5
- asp.net-mvc – 无法在Global.asax上加载类型MvcApplicatio
推荐文章
站长推荐
- 使用ASP.NET卷曲请求
- asp.net – 如何通过ADO.NET运行我的.sql脚本文件
- asp.net – Orchard CMS Media中的文件大小上传限
- asp.net – HTTP_COOKIE IIS服务器变量因未知原因
- 从ASP.NET SQL memership DB中删除已失效/缺少应
- asp.net-core – Asp.net Core中的UserHostAddre
- ASP.NET页面授权……你是怎么做到的?
- asp.net-mvc – ASP.NET MVC – 向ActionLinks添
- 如何获取基于PhoneGap的应用程序来对ASP.NET For
- asp.net-mvc – 实体框架5迁移:设置初始迁移和数
热点阅读