【问题标题】:Add OData Route During Runtime在运行时添加 OData 路由
【发布时间】:2017-06-01 02:00:05
【问题描述】:
程序编译后是否可以添加OData Routes?例如,如果我希望能够在不使用$select 的情况下获取属性,则需要将属性[ODataRoute("Controller({key})/Property")] 添加到GET 方法中。如果我使用反射来获取所有属性名称,是否可以像上面的示例一样创建 ODataRoute 而无需在属性中明确这样做?
【问题讨论】:
标签:
c#
reflection
routing
odata
【解决方案1】:
这是可能的,在 ODataSamples 项目中有一个用于 DynamicEdmModelCreation here 的示例,以举例说明它是如何工作的
它围绕使用ODataConventionModelBuilder 在运行时生成您的模型,如下所示:
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Customer>("Customers");
config.Routes.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());