private static void AddEnumEntitiesTo(TournamentDbContext ctx)
        {
            var types = Assembly.GetAssembly(typeof(Entity)).ExportedTypes;
            var enumEntityFactoryTypes = types.Where(type => !type.IsAbstract && type.BaseType.IsConstructedGenericType && type.BaseType.GetGenericTypeDefinition() == typeof(EnumEntityFactory <,>));

            foreach (var enumEntityFactoryType in enumEntityFactoryTypes)
            {
                var enumEntityFactory = enumEntityFactoryType.GetProperty("Instance").GetValue(null, null);

                if (enumEntityFactoryType.GetProperty("Entities").GetValue(enumEntityFactory) is IEnumerable <EnumEntity> entities)
                {
                    try
                    {
                        ctx.AddRange(entities);
                    }
                    catch (Exception)
                    {
                        // Ignore exceptions caused by duplicate entities.
                    }
                }
            }
        }