示例#1
0
        /// <summary>
        /// Create a new document store
        /// </summary>
        /// <param name="serverName">The name of the server which you want to create a document store for.</param>
        /// <returns></returns>
        private Lazy <IDocumentStore> CreateDocumentStore(
            string serverName)
        {
            ThrowIfDisposed();

            if (!_servers.ContainsKey(serverName))
            {
                throw new UnknownServerException("Unable to find specified server: {0}.", serverName);
            }

            var server = _servers[serverName];

            return(new Lazy <IDocumentStore>(() =>
            {
                var store = RavenHelpers.CreateDocumentStore(_host, server);
                store.Initialize();
                return store;
            }));
        }
示例#2
0
        public static RavenStoreBuilder AddRavenStore(
            this IServiceCollection services)
        {
            services.AddSingleton(provider =>
            {
                var options = provider
                              .GetService <IOptions <RavenStoreOptions> >()?.Value;

                var host = provider
                           .GetService <IHostingEnvironment>();

                var store = RavenHelpers.CreateDocumentStore(host, options);
                store.Initialize();

                return(store);
            });

            return(new RavenStoreBuilder(services));
        }