public DocumentStore(StoreOptions options) { options.ApplyConfiguration(); options.Validate(); Options = options; _logger = options.Logger(); Serializer = options.Serializer(); if (options.CreateDatabases != null) { IDatabaseGenerator databaseGenerator = new DatabaseGenerator(); databaseGenerator.CreateDatabases(Tenancy, options.CreateDatabases); } Schema = Tenancy.Default.Database; Storage.PostProcessConfiguration(); Events.AssertValidity(this); Options.Projections.AssertValidity(this); Advanced = new AdvancedOperations(this); Diagnostics = new Diagnostics(this); if (Options.GeneratedCodeMode == TypeLoadMode.LoadFromPreBuiltAssembly) { var rules = new GenerationRules(SchemaConstants.MartenGeneratedNamespace); Events.As <IGeneratesCode>().AttachPreBuiltTypes(rules, Assembly.GetEntryAssembly(), null); Options.As <IGeneratesCode>().AttachPreBuiltTypes(rules, Assembly.GetEntryAssembly(), null); } options.InitialData.Each(x => x.Populate(this).GetAwaiter().GetResult()); }