C# 在运行时添加OData路由

C# 在运行时添加OData路由,c#,reflection,routing,odata,C#,Reflection,Routing,Odata,在编译程序后是否可以添加OData路由?例如,如果我想在不使用$select的情况下获取属性,我需要将属性[ODataRoute(“Controller({key})/property”)]添加到get方法中。如果我使用反射来获取所有属性名,是否可以像上面的示例那样创建ODataRoute,而不在属性中显式地这样做?这是可能的,并且在ODataSamples项目中有一个用于DynamiceModelCreation的示例,以说明这是如何工作的 它围绕使用ODataConventionModelB

在编译程序后是否可以添加OData路由?例如,如果我想在不使用
$select
的情况下获取属性,我需要将属性
[ODataRoute(“Controller({key})/property”)]
添加到
get
方法中。如果我使用反射来获取所有属性名,是否可以像上面的示例那样创建ODataRoute,而不在属性中显式地这样做?

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

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

var builder = new ODataConventionModelBuilder();
builder.EntitySet<Customer>("Customers");
config.Routes.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
var builder=new ODataConventionModelBuilder();
建筑商实体集(“客户”);
config.Routes.MapODataServiceRoute(“odata”,“odata”,builder.GetEdmModel());

这是可能的,在动态MModelCreation的ODataSamples项目中有一个示例,给出了如何工作的示例

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

var builder = new ODataConventionModelBuilder();
builder.EntitySet<Customer>("Customers");
config.Routes.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
var builder=new ODataConventionModelBuilder();
建筑商实体集(“客户”);
config.Routes.MapODataServiceRoute(“odata”,“odata”,builder.GetEdmModel());