OData / WCF 服务操作 - 通过 URI 进行属性访问?
我使用 WCF 数据服务中的服务操作来获取对象。
[WebGet]
public IQueryable<sample> GetSamples(int Id)
我可以通过 Is it possible to get property of the returned object 检索数据,
http://localhost:xx/GetSamples?Id=9
类似于
http://localhost:xx/samples(x)/property
我尝试过 http: //localhost:xx/GetSamples?Id=9/property 和 http://localhost:xx/GetSamples/property?Id=9 等。没有任何效果。
I use a Service Operation in WCF data service to get a object.
[WebGet]
public IQueryable<sample> GetSamples(int Id)
I can retrieve data by
http://localhost:xx/GetSamples?Id=9
Is it possible to get property of the returned object similar to
http://localhost:xx/samples(x)/property
I've tried http://localhost:xx/GetSamples?Id=9/property, and http://localhost:xx/GetSamples/property?Id=9 etc. Nothing works.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果 Sample 是复杂类型,那么这将不起作用。
如果 Sample 是实体类型,那么只需稍作修改即可使用。属性访问只能在单例结果上进行。 WCF DS 不知道您的服务操作总是返回单个实体,要告诉的是,向您的服务操作方法添加一个属性 SingleResult。那么第一个 URL 应该可以工作:service/GetSample/PropertyName?id=2
如果 Sample 是实体类型并且您知道键属性值(或多个值),则 service/Samples(keypropertyvalue)/PropertyName 也应该有效。
If Sample is a complex type then this won't work.
If Sample is an entity type, then it will work with a small modification. Property access is only possible on a singleton result. WCF DS doesn't know that your service operation always returns a single entity, to tell is to, add an attribute SingleResult to your service operation method. Then the first URL should work: service/GetSample/PropertyName?id=2
If the Sample is an entity type and you know the key property value (or values) then service/Samples(keypropertyvalue)/PropertyName should also work.
使用选择怎么样?
What about using a select?