private static void ConfigureUnit(ModelBuilder modelBuilder)
        {
            var unitConverter = new EnumToEnumValueConverter <Unit>();

            modelBuilder.Entity <Indicator>()
            .Property(indicator => indicator.Unit)
            .HasConversion(unitConverter);
        }
        private static void ConfigureBoundaryLevel(ModelBuilder modelBuilder)
        {
            var geographicLevelConverter = new EnumToEnumValueConverter <GeographicLevel>();

            modelBuilder.Entity <BoundaryLevel>()
            .Property(boundaryLevel => boundaryLevel.Level)
            .HasConversion(geographicLevelConverter);
        }
        private static void ConfigureGeographicLevel(ModelBuilder modelBuilder)
        {
            var geographicLevelConverter = new EnumToEnumValueConverter <GeographicLevel>();

            modelBuilder.Entity <Observation>()
            .Property(observation => observation.GeographicLevel)
            .HasConversion(geographicLevelConverter)
            .HasMaxLength(6);

            modelBuilder.Entity <Observation>()
            .HasIndex(observation => observation.GeographicLevel);
        }
        private static void ConfigureTimePeriod(ModelBuilder modelBuilder)
        {
            var timeIdentifierConverter = new EnumToEnumValueConverter <TimeIdentifier>();

            modelBuilder.Entity <Observation>()
            .Property(observation => observation.TimeIdentifier)
            .HasConversion(timeIdentifierConverter)
            .HasMaxLength(6);

            modelBuilder.Entity <Observation>()
            .HasIndex(observation => observation.Year);

            modelBuilder.Entity <Observation>()
            .HasIndex(observation => observation.TimeIdentifier);
        }