/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public DbContextDependencies( [NotNull] IChangeDetector changeDetector, [NotNull] IDbSetInitializer dbSetInitializer, [NotNull] IEntityFinderSource entityFinderSource, [NotNull] IEntityGraphAttacher entityGraphAttacher, [NotNull] IModel model, [NotNull] IAsyncQueryProvider queryProvider, [NotNull] IStateManager stateManager) { Check.NotNull(changeDetector, nameof(changeDetector)); Check.NotNull(dbSetInitializer, nameof(dbSetInitializer)); Check.NotNull(entityFinderSource, nameof(entityFinderSource)); Check.NotNull(entityGraphAttacher, nameof(entityGraphAttacher)); Check.NotNull(model, nameof(model)); Check.NotNull(queryProvider, nameof(queryProvider)); Check.NotNull(stateManager, nameof(stateManager)); ChangeDetector = changeDetector; DbSetInitializer = dbSetInitializer; EntityFinderSource = entityFinderSource; EntityGraphAttacher = entityGraphAttacher; Model = model; QueryProvider = queryProvider; StateManager = stateManager; }
/// <summary> /// Creates a <see cref="DbSet{TEntity}" /> that can be used to query and save instances of <typeparamref name="TEntity" />. /// </summary> /// <typeparam name="TEntity"> The type of entity for which a set should be returned. </typeparam> /// <returns> A set for the given entity type. </returns> public virtual DbSet <TEntity> Set <TEntity>() where TEntity : class { if (Model.FindEntityType(typeof(TEntity)) == null) { throw new InvalidOperationException(CoreStrings.InvalidSetType(typeof(TEntity).Name)); } return((_setInitializer ?? (_setInitializer = ServiceProvider.GetRequiredService <IDbSetInitializer>())).CreateSet <TEntity>(this)); }
/// <summary> /// Releases the allocated resources for this context. /// </summary> public virtual void Dispose() { _disposed = true; _serviceScope?.Dispose(); _setInitializer = null; _changeTracker = null; _stateManager = null; _changeDetector = null; _graphAttacher = null; _model = null; }
/// <summary> /// Creates a <see cref="DbSet{TEntity}" /> that can be used to query and save instances of <typeparamref name="TEntity" />. /// </summary> /// <typeparam name="TEntity"> The type of entity for which a set should be returned. </typeparam> /// <returns> A set for the given entity type. </returns> public virtual DbSet <TEntity> Set <TEntity>() where TEntity : class => (_setInitializer ?? (_setInitializer = ServiceProvider.GetRequiredService <IDbSetInitializer>())).CreateSet <TEntity>(this);