asp.net-web-api – 在ASP.NET WebAPI OData中返回子元素
我正在使用最新的ASP.Net WebAPI Nightly版本(日期为2013-01-16).
我有一个简单的EF数据库第一个模型,目前有两个实体 – 患者和访问.每位患者可以多次访问. 我希望能够查询我的患者列表,并让每位患者的访问实体在线返回.我知道WebAPI的OData实现还不支持$expand.我希望这只意味着不支持可选的客户端控制扩展,并且我可以强制扩展服务器端. 目前我没有进行任何内联访问. 例如,我的PatientController的()Get()方法看起来像 [Queryable(AllowedQueryOptions=AllowedQueryOptions.Supported)] public override IQueryable<Patient> Get() { var query = this.entities.Patients.Include("Visits"); return query; } 我已经验证了针对我的数据库执行的查询确实包含访问信息. 要使用公开的OData服务作为示例,如果您在http://services.odata.org/OData/OData.svc/使用该服务,则可以获得供应商列表.这是http://http://services.odata.org/OData/OData.svc/Suppliers. 单步执行ASP.NET代码(通过符号服务器)我已经到了System.Web.Http.OData.Formatter.Serialization.ODataEntityTypeSerializer,可以看到它是CreatePropertyBag方法,它构建了要序列化的属性列表,只是不包括导航属性,除了被写为NavigationLinks之外,它们似乎在其他任何地方都没有被枚举. 我对ASP.NET世界一般都很陌生,并花了一周左右的时间了解事情的发展方向(特别是2012年底对OData所做的更改以及2013年迄今为止的进一步更改) . 我怀疑如果要修改ODataEntityTypeSerializer(我很乐意尝试)将这些额外的信息嵌入到适当的位置(在每个导航链接中作为嵌套的内联Feed尽可能地告诉我),那么我将被设置. 问题: >我是否忽略了一些明显的东西,我可以设置一个标志来打开这种行为?我可以看到为什么,如果这样的标志存在,它将默认关闭(EF延迟加载,这个标志不会很好) 非常感谢! 解决方法
在我们支持OData的事物列表中,$expand非常高.但据我所知,我们没有任何标志可以在服务器端打开它.格式化程序当前不允许您替换自己的序列化程序.所以我担心你在此期间唯一的选择就是创建一个fork并添加对$expand的支持.如果您设法让它工作,请考虑以我们的方式发送拉取请求:
http://aspnetwebstack.codeplex.com/SourceControl/network (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Asp.NET cookies返回null
- asp.net-mvc – 如何在特定的mvc3控制器/动作中授权用户角色
- asp.net-mvc – ASP.NET MVC如何在生产中禁用调试路由/视图
- asp.net – MVC区域路由 – 带文件夹的控制器文件夹
- asp.net – 城堡windsor控制器工厂和存储库无法解决
- 以30种语言开发ASP.NET网站的最佳实践?
- asp.net – 如何使用带有TemplateFields的ObjectDataSource
- asp.net – Web.config自定义错误模式冲突
- asp.net-mvc – 在IIS 6上托管ASP.NET MVC时是否会丢失功能
- asp.net-mvc – 通过NuGet升级到Microsoft.AspNet.Mvc 5.0.
- asp.net – 如何确定请求是否是回发的结果?
- ASP.NET MVC的MS应用程序示例?
- asp.net-mvc – 如何从FilterAttribute中获取当前
- ASP.NET WEB应用程序(.network4.5)mvc 程序的结
- ASP.NET和MySQL .Net Framework数据提供程序问题
- asp.net – 使用Session来存储身份验证?
- asp.net – UpdatePanel没有名为’TextBox’的公
- ASP.NET 5中的设计时T4模板(VS 2015)
- asp.net-mvc – 用于Bookmarked Angular SPA URL
- 从客户端调用asp.net ajax服务器控件的公共函数