public SqlEventLogRepository(
            IConcurrentSqlStorage <SqlEventLogEntry, Guid> eventLogSqlStorage,
            Func <SqlDbContext> createDbContext,
            ISqlDbContextSettings sqlDbContextSettings)
        {
            this.eventLogSqlStorage = eventLogSqlStorage;
            this.createDbContext    = createDbContext;
            customJsonConverters    = CustomJsonConvertersBuilder.Build(sqlDbContextSettings.CustomJsonConverters);
            var entityType = typeof(TEntity);

            entityTypeName = GetEventLogEntityTypeName(createDbContext, entityType);
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            ConfigureEventLog(modelBuilder);
            var jsonConverters = CustomJsonConvertersBuilder.Build(settings.CustomJsonConverters);

            foreach (var type in settings.SqlEntitiesRegistry.GetEntityTypes())
            {
                modelBuilder
                .Entity(type)
                .ApplyTimestampConverter()
                .ApplyJsonColumns(jsonConverters)
                .ApplyIndices()
                .ApplyUniqueConstraints();
            }
        }