WebAPI 2.2 中没有命名空间的 OData v4 自定义函数

OData v4 Custom functions without namespace in WebAPI 2.2

我们想在 WebAPI 2.2 上为我们的新项目使用 ODataV4,但有一个不行:url 设计。 我们必须通过我们的 api.

传送 json 数据和二进制数据(图像)

是否有可能避免自定义函数在 OData 路由上的命名空间外观? /odata/Customers/GetByName('Name') 而不是 /odata/Customers/CustomerService.GetByName('Name')

以及如何使用 OData 控制器实现二进制数据(jpeg 图像)的响应? 一种非常丑陋的方法是在一个项目中托管 OdataControllers 和 ApiControllers 并使用不同的 url 区域。

/odata/Customers(1) -> OdataControllers /api/Customers/1/ProfileImage -> ApiController

第一个问题,请参考http://odata.github.io/WebApi/#06-01-custom-url-parsing

谢谢千里!你真的帮了大忙!

HttpConfiguration config = …
config.EnableCaseInsensitive(caseInsensitive: true);
config.EnableUnqualifiedNameCall(unqualifiedNameCall: true);
config.EnableEnumPrefixFree(enumPrefixFree: true);
config.MapODataServiceRoute("odata", "odata", edmModel);