public static async Task Main(string[] args) { // Need to log stuff... var loggerFactory = LoggerFactory.Create(builder => { builder.SetMinimumLevel(LogLevel.Debug); builder.AddConsole(); }); var logger = loggerFactory.CreateLogger(nameof(Main)); logger.LogInformation("Starting app."); var ravenDbOptions = new RavenDbOptions { DatabaseName = $"Testing-SimpleRavenDb-{Guid.NewGuid()}", ServerUrls = new[] { "http://localhost:5200" } }; var services = new ServiceCollection(); // This will: // - Register the IDocumentStore // - Initialize the instance of the DocumentStore // - ** NO DATA IS SETUP (that happens later, if you want to) ** services.AddSimpleRavenDb(ravenDbOptions); var serviceProvider = services.BuildServiceProvider(); logger.LogInformation("Testing to see if we can seed data into RavenDb."); // Because we don't have any code that starts 'Hosts', we need to manually // pretend we're starting the host. using (var documentStore = serviceProvider.GetRequiredService <IDocumentStore>()) { // Can be null - we might not have any setup options, which is totally kewl. // (in this sample app, no RavenDbSetupOptions were registered with DI // and so a null instance will be retrieved/returned). // I just wanted to show you the proper pattern. var setupOptions = serviceProvider.GetService <RavenDbSetupOptions>(); // Now lets setup RavenDb! await documentStore.SetupRavenDbAsync(setupOptions, logger, default); } logger.LogInformation("Finished test app."); }
public StoreContext(RavenDbOptions options) { var opt = options ?? throw new ArgumentNullException(nameof(options)); var database = opt.DatabaseId.IsEmptyNullOrWhiteSpace() ? throw new ArgumentNullException(nameof(opt.DatabaseId)) : opt.DatabaseId; _store = new DocumentStore { Urls = opt.Urls ?? throw new ArgumentNullException(nameof(opt.Urls)), Database = database }; _store.Conventions.FindCollectionName = EventStoreCollectionName; _store.Conventions.FindIdentityProperty = mi => mi.Name.EqualsEx("id"); _store.Initialize(); EnsureDatabaseExists(_store, database); }