动态构建webapi odata模型

vc *_* 74 5 .net c# odata asp.net-web-api

到目前为止,我见过的所有webapi + odata示例都WebApiConfig.Register使用以下内容构建模型:

...
var modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<AClass>("SetName");
...
IEdmModel model = modelBuilder.GetEdmModel();
Run Code Online (Sandbox Code Playgroud)

就我而言,我想动态构建modelBuilder.EntitySet<AClass>("SetName")运行时使用的类,并在第一次执行对此实体集的请求时动态注册它们.

我读过这篇文章 ,当没有可用的后备CLR类型但仍然在服务启动期间构建模型时使用EdmEntityObject.

有没有办法在飞行中构建模型?

Tan*_*nfu 5

此示例很好地满足了您的要求:https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/DynamicEdmModelCreation/

  • 警告:当前示例使用 Microsoft.AspNet.OData v7。请注意,它目前仅在自托管而不是在 IIS 中托管时有效。网址:[链接](https://github.com/OData/ODataSamples/tree/master/WebApiClassic/DynamicEdmModelCreation) (2认同)