我正在寻找在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/

10-13 02:32