示例#1
0
        /// <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;
        }
示例#2
0
        /// <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));
        }
示例#3
0
 /// <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;
 }
示例#4
0
 /// <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);