public DataMigrator(DbContext context, DataMigrationOptions options)
        {
            _context = context;
            _options = options;

            var contextType    = _context.GetType();
            var migrationsType = typeof(IDataMigration <>).MakeGenericType(contextType);

            MigrationsAssembly = string.IsNullOrEmpty(options.MigrationAssembly) ? contextType.Assembly : Assembly.Load(options.MigrationAssembly);
            _localMigrations   = MigrationsAssembly.GetTypes().Where(p => p.GetInterfaces().Any(x => migrationsType.IsAssignableFrom(x)))
                                 .ToImmutableDictionary(GetMigrationId, p => p);

            _invoker = _invokerCache.GetOrAdd(contextType, CreateInoker);
        }