public static IApplicationBuilder UseOData <T>([NotNull] this IApplicationBuilder app, string prefix) where T : class { var defaultAssemblyProvider = app.ApplicationServices.GetRequiredService <IAssemblyProvider>(); AssemblyProviderManager.Register(defaultAssemblyProvider); return(app.UseRouter(new ODataRoute(prefix, DefaultODataModelProvider.BuildEdmModel(typeof(T))))); }
//public static IRouteBuilder MapODataRoute<T>(this IRouteBuilder builder, string prefix) where T : class //{ // builder.Routes.Add(new ODataRoute(prefix, DefaultODataModelProvider.BuildEdmModel(typeof(T)))); // return builder; //} public static IServiceCollection AddOData <T>([NotNull] this IServiceCollection services, Action <ODataConventionModelBuilder> after = null) where T : class { services.AddOData(); var type = typeof(T); var assemblyNames = new AssembliesResolver(type.GetTypeInfo().Assembly); var model = DefaultODataModelProvider.BuildEdmModel(type, assemblyNames, after); services.AddSingleton(model); services.AddSingleton(assemblyNames); return(services); }
public static IRouteBuilder MapODataRoute <T>(this IRouteBuilder builder, string prefix) where T : class { builder.Routes.Add(new ODataRoute(prefix, DefaultODataModelProvider.BuildEdmModel(typeof(T)))); return(builder); }