Ejemplo n.º 1
0
        static void AddODataSupport(ServerHost server)
        {
            var objectModelBuilder = new ODataConventionModelBuilder();

            var bornInfo = objectModelBuilder.ComplexType <BornInfoView>();

            bornInfo.Property(bi => bi.When);
            bornInfo.Property(bi => bi.Where);

            var person = objectModelBuilder.EntitySet <PersonView>("PeopleView")
                         .EntityType.HasKey(p => p.Id);

            person.Property(p => p.Name);
            person.Property(p => p.Version);
            person.ComplexProperty(p => p.BornInfo);

            var address = objectModelBuilder.EntitySet <AddressView>("AddressesView")
                          .EntityType.HasKey(a => a.AddressId);

            address.Property(a => a.Street);
            address.Property(a => a.PersonId);

            server.AddHttpConfigurationCustomization(cfg =>
            {
                cfg.MapODataServiceRoute(
                    routeName: "ODataRoute",
                    routePrefix: null,
                    model: objectModelBuilder.GetEdmModel()
                    );
            });
        }