using MongoDB.Entities; namespace PrivaPub.Infrastructure.Data { public static class EntityMaps { public static void Warm() { var collection = typeof(DB).GetMethods() .Single(m => m.Name == nameof(DB.Collection) && m.IsGenericMethodDefinition && m.GetParameters().Length == 0); var entities = typeof(EntityMaps).Assembly.GetTypes() .Where(t => t is { IsClass: true, IsAbstract: false, IsGenericTypeDefinition: false } && typeof(IEntity).IsAssignableFrom(t)) .OrderBy(t => t.FullName, StringComparer.Ordinal); foreach (var entity in entities) collection.MakeGenericMethod(entity).Invoke(DB.Default, null); } } }