在运行时添加OData路由

时间:2017-06-01 02:00:06

标签: c# reflection routing odata

编译程序后是否可以添加OData路由?例如,如果我希望能够在不使用$select的情况下获取属性,则需要将属性[ODataRoute("Controller({key})/Property")]添加到GET方法。如果我使用反射来获取所有属性名称,是否可以创建一个类似上面示例的ODataRoute而不在属性中明确地这样做?

1 个答案:

答案 0 :(得分:0)

这是可能的,并且ODataSamples项目中有一个示例,用于DynamicEdmModelCreation here,以举例说明这是如何工作的

围绕使用ODataConventionModelBuilder在运行时生成模型,如下所示:

var builder = new ODataConventionModelBuilder();
builder.EntitySet<Customer>("Customers");
config.Routes.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());