public virtual DbContextConfiguration Initialize( [NotNull] IServiceProvider externalProvider, [NotNull] IServiceProvider scopedProvider, [NotNull] DbContextOptions contextOptions, [NotNull] DbContext context, ServiceProviderSource serviceProviderSource) { Check.NotNull(externalProvider, "externalProvider"); Check.NotNull(scopedProvider, "scopedProvider"); Check.NotNull(contextOptions, "contextOptions"); Check.NotNull(context, "context"); Check.IsDefined(serviceProviderSource, "serviceProviderSource"); _externalProvider = externalProvider; _services = new ContextServices(scopedProvider); _serviceProviderSource = serviceProviderSource; _contextOptions = contextOptions; _context = context; _dataStoreServices = new LazyRef <DataStoreServices>(() => _services.DataStoreSelector.SelectDataStore(this)); _modelFromSource = new LazyRef <IModel>(() => _services.ModelSource.GetModel(_context, _dataStoreServices.Value.ModelBuilderFactory)); _dataStore = new LazyRef <DataStore>(() => _dataStoreServices.Value.Store); _connection = new LazyRef <DataStoreConnection>(() => _dataStoreServices.Value.Connection); _loggerFactory = new LazyRef <ILoggerFactory>(() => _externalProvider.TryGetService <ILoggerFactory>() ?? new NullLoggerFactory()); _database = new LazyRef <Database>(() => _dataStoreServices.Value.Database); _stateManager = new LazyRef <StateManager>(() => _services.StateManager); return(this); }
public virtual DbContextConfiguration Initialize( [NotNull] IServiceProvider externalProvider, [NotNull] IServiceProvider scopedProvider, [NotNull] DbContextOptions contextOptions, [NotNull] DbContext context, ServiceProviderSource serviceProviderSource) { Check.NotNull(externalProvider, "externalProvider"); Check.NotNull(scopedProvider, "scopedProvider"); Check.NotNull(contextOptions, "contextOptions"); Check.NotNull(context, "context"); Check.IsDefined(serviceProviderSource, "serviceProviderSource"); _externalProvider = externalProvider; _services = new ContextServices(scopedProvider); _serviceProviderSource = serviceProviderSource; _contextOptions = contextOptions; _context = context; _dataStoreServices = new LazyRef<DataStoreServices>(() => _services.DataStoreSelector.SelectDataStore(this)); _modelFromSource = new LazyRef<IModel>(() => _services.ModelSource.GetModel(_context, _dataStoreServices.Value.ModelBuilderFactory)); _dataStore = new LazyRef<DataStore>(() => _dataStoreServices.Value.Store); _connection = new LazyRef<DataStoreConnection>(() => _dataStoreServices.Value.Connection); _loggerFactory = new LazyRef<ILoggerFactory>(() => _externalProvider.TryGetService<ILoggerFactory>() ?? new NullLoggerFactory()); _database = new LazyRef<Database>(() => _dataStoreServices.Value.Database); _stateManager = new LazyRef<StateManager>(() => _services.StateManager); return this; }