Пример #1
0
        /// <summary>
        /// Dynamically create <see cref="EntitySetConfiguration{TEntityType}"/> for each Dto in Core.ApplicationModels.Dtos, add it to the odata configuration and enable default operations on routes.
        /// the default operations enabled are: Select, Expand, Filter, OrderBy, MaxTop, Count
        /// </summary>
        /// <param name="app"></param>
        public static void ConfigureOdata(this IApplicationBuilder app)
        {
            var odataBuilder = new ODataConventionModelBuilder(app.ApplicationServices);
            var dtoTypes     = GetEntitiesDtos().Where(t => !t.Name.Contains("Item"));

            odataBuilder.AddTypesToOdataEntitySet(dtoTypes.ToArray());
            app.UseMvc(routeBuilder =>
            {
                routeBuilder.Select()
                .Expand()
                .Filter()
                .OrderBy()
                .MaxTop(100)
                .Count();
                routeBuilder.MapODataServiceRoute("ODataRoute", "api", odataBuilder.GetEdmModel());
                routeBuilder.EnableDependencyInjection();
            });
        }