我正在寻找在ProductController中创建一个未绑定(bind)的函数,该函数返回完全不同的实体(与Product不相关)。
[EnableQuery]
public class ProductsController : ODataController
{
[HttpGet]
[ODataRoute("InvokeMyUnBoundFunction(Id={id})")]
public IHttpActionResult InvokeMyUnBoundFunction(int id)
{
TestUnBound testObj= new TestUnBound();
testObj.Name = "Test" + id;
return Ok(testObj);
}
}
而我的webApiConfig是
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
builder.EntitySet<TestUnBound>("TestUnBounds"); //Its not related to Product.
builder.Function("InvokeMyUnBoundFunction").Returns<TestUnBound>().Parameter<int>("Id");
但是当我调用
http://localhost:port/api/odata/InvokeMyUnBoundFunction(Id=1234)
我收到类似的错误消息
我错过任何概念吗?
最佳答案
您应该使用
ReturnsFromEntitySet<TestUnBound>
代替Returns<TestUnBound>
关于c# - 具有未绑定(bind)函数: The related entity set or singleton cannot be found from the OData path的Odata,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31897249/