【发布时间】:2015-03-25 08:17:37
【问题描述】:
使用 oData v4(特别是 Microsoft.AspNet.Odata 5.3.0 和 Microsoft.Odata.Core 6.7.0),即使我已将函数声明为IsComposable = true。
有什么建议可以让这个场景发挥作用吗?我主要对 $filter 和 $select 感兴趣。
-最大
详细信息(基于 https://github.com/OData/ODataSamples 中的 FunctionSamples)
尝试查询: http://localhost:9010/odata/Products/Default.Top10()?$select=Name
预期响应(摘录)
{
Name: "Product 48"
}
实际反应(摘录)
{
Id: 48,
Name: "Product 48",
Price: 986.2794056470876
}
函数声明:
// Function bound to a collection
// Returns the top 10 product, a collection
productType.Collection
.Function("Top10")
.ReturnsCollectionFromEntitySet<Product>("Products")
.IsComposable = true;
控制器:
// Returns the top ten most expensive products
[HttpGet]
public IHttpActionResult Top10()
{
var retval = _data.Values.OrderByDescending(p => p.Price).Take(10).ToList();
return Ok(retval);
}
【问题讨论】: