System.Data.Entity.Infrastructure 命名空间

[本页针对的是实体框架版本 6。最新版本以“实体框架”NuGet 包的形式提供。有关实体框架的更多信息,请参见 msdn.com/data/ef。]

System.Data.Entity.Infrastructure 命名空间包含支持核心实体框架功能的类。

  描述
公共类 CommitFailedException 在提交 DbTransaction 期间出错时引发的异常。
公共类 CommitFailureHandler 表示事务处理程序,该程序允许在事务提交期间通过在数据库中存储事务跟踪信息,来从连接故障中正常恢复。需要使用 SetDefaultTransactionHandler(Func<TransactionHandler>) 注册它。
公共类 DbChangeTracker DbContext 的 ChangeTracker 方法返回以提供对与实体的更改跟踪相关的上下文的功能的访问。
公共类 DbCollectionEntry 表示非泛型版本的 DbCollectionEntry<TEntity, TElement> 类。
公共类 DbCollectionEntry<TEntity, TElement> 此类的实例从 DbEntityEntry<TEntity> 的 Collection 方法返回,并且允许对实体的集合导航属性执行各种操作(如加载)。
公共类 DbCompiledModel 实体数据模型 (EDM) 模型的不可变表示形式,该模型可用于创建 ObjectContext,也可将该模型传递给 DbContext 的构造函数。为了提高性能,应缓存和重用此类型的实例以构造上下文。
公共类 DbComplexPropertyEntry 非泛型版本的 DbComplexPropertyEntry<TEntity, TComplexProperty> 类。
公共类 DbComplexPropertyEntry<TEntity, TComplexProperty> 此类的实例从 DbEntityEntry<TEntity> 的 ComplexProperty 方法返回,并允许访问复杂属性的状态。
公共类 DbConnectionInfo 表示有关数据库连接的信息。
公共类 DbContextConfiguration DbContext 的 Configuration 方法返回以提供对上下文的配置选项的访问。
公共类 DbContextInfo 提供有关给定 DbContext 类型的运行时信息。
公共类 DbEntityEntry 非泛型版本的 DbEntityEntry<TEntity> 类。
公共类 DbEntityEntry<TEntity> 此类的实例提供对有关由 DbContext 跟踪的实体的信息和控制的访问权。使用上下文的 Entity 或 Entities 方法来获取此类型的对象。
公共类 DbExecutionStrategy 为在两次重试之间使用以指数形式增长的延迟时间的不可靠操作和瞬时条件提供重试机制的基实现。
公共类 DbMemberEntry 这是一个抽象基类,用于表示实体的标量/复杂属性或导航属性。标量和复杂属性使用派生类 DbPropertyEntry,引用导航属性使用派生类 DbReferenceEntry,而集合导航属性使用派生类 DbCollectionEntry
公共类 DbMemberEntry<TEntity, TProperty> 这是一个抽象基类,用于表示实体的标量/复杂属性或导航属性。标量和复杂属性使用派生类 DbPropertyEntry<TEntity, TProperty>,引用导航属性使用派生类 DbReferenceEntry<TEntity, TProperty>,而集合导航属性使用派生类 DbCollectionEntry<TEntity, TElement>
公共类 DbModel 表示由 DbModelBuilder 创建的实体数据模型 (EDM)。Compile 方法,可用来从此 EDM 的表示形式转换到 DbCompiledModel,后者是适合缓存和创建 DbContextObjectContext 实例的模型的编译快照。
公共类 DbPropertyEntry 非泛型版本的 DbPropertyEntry<TEntity, TProperty> 类。
公共类 DbPropertyEntry<TEntity, TProperty> 此类的实例从 DbEntityEntry<TEntity> 的 Property 方法返回,并允许访问标量属性或复杂属性。
公共类 DbPropertyValues 基础实体或复杂对象的所有属性的集合。
公共类 DbProviderInfo 分组一对字符串,它们将提供程序和服务器版本一起标识为一个对象。
公共类 DbQuery 表示针对 DbContext 的非泛型 LINQ to Entities 查询。
公共类 DbQuery<TResult> 表示针对 DbContext 的 LINQ to Entities 查询。
公共类 DbRawSqlQuery 表示非实体的一个 SQL 查询,该查询从 DbContext 创建并通过该上下文中的连接来执行。此类的实例是从 Database 实例中获取的。创建此对象时不会执行该查询;只要枚举该查询,该查询就会执行(例如,使用 foreach)。实体的 SQL 查询是使用 SqlQuery(String, Object[]) 创建的。请参见 DbRawSqlQuery<TElement> 了解此类的泛型版本。
公共类 DbRawSqlQuery<TElement> 表示非实体的一个 SQL 查询,该查询从 DbContext 创建并通过该上下文中的连接来执行。此类的实例是从 Database 实例中获取的。创建此对象时不会执行该查询;只要枚举该查询,该查询就会执行(例如,使用 foreach)。实体的 SQL 查询是使用 SqlQuery(String, Object[]) 创建的。请参见 DbRawSqlQuery 了解此类的非泛型版本。
公共类 DbReferenceEntry 非泛型版本的 DbReferenceEntry<TEntity, TProperty> 类。
公共类 DbReferenceEntry<TEntity, TProperty> 此类的实例从 DbEntityEntry<TEntity> 的 Reference 方法返回,并且允许对实体的引用导航属性执行各种操作(如加载)。
公共类 DbSqlQuery 表示实体的一个 SQL 查询,该查询从 DbContext 创建并通过该上下文中的连接来执行。此类的实例是从该实体类型的 DbSet 实例中获取的。创建此对象时不会执行该查询;只要枚举该查询,该查询就会执行(例如,使用 foreach)。非实体的 SQL 查询是使用 SqlQuery(Type, String, Object[]) 创建的。请参见 DbSqlQuery<TEntity> 了解此类的泛型版本。
公共类 DbSqlQuery<TEntity> 表示实体的一个 SQL 查询,该查询从 DbContext 创建并通过该上下文中的连接来执行。此类的实例是从该实体类型的 DbSet<TEntity> 实例中获取的。创建此对象时不会执行该查询;只要枚举该查询,该查询就会执行(例如,使用 foreach)。非实体的 SQL 查询是使用 SqlQuery<TElement>(String, Object[]) 创建的。请参见 DbSqlQuery 了解此类的非泛型版本。
公共类 DbUpdateConcurrencyException 当预期实体的 SaveChanges 将导致数据库更新而实际上未影响数据库中的任何行时 DbContext 引发的异常。这通常指示,当前已并发更新数据库,使得应匹配的并发标记实际上并不匹配。请注意为了安全起见,不会序列化此异常引用的状态项,并且在序列化后对状态项的访问将返回 null。
公共类 DbUpdateException 将更改保存到数据库失败时,由 DbContext 引发的异常。请注意为了安全起见,不会序列化此异常引用的状态项,并且在序列化后对状态项的访问将返回 null。
公共类 DefaultExecutionStrategy 表示如果失败不重试操作的默认 IDbExecutionStrategy
公共类 DefaultManifestTokenResolver 表示使用基础提供程序以获取清单标记的 IManifestTokenResolver 的默认实现。请注意,为避免多个查询,此实现基于 DbConnection 实例的实际类型、DataSource 属性和 Database 属性使用缓存。
公共类 EdmMetadata 已过时。 表示用于存储有关数据库中 EDM 的元数据的实体。
公共类 EdmxWriter 包含用于访问由 Code First 创建的 EDMX 格式的实体数据模型的方法。通常,在需要查看 Code First 内部创建的模型时,这些方法将用于调试。
公共类 ExecutionStrategyKey 一个用于解析 Func<TResult> 的键。它包含 ADO.NET 提供程序固定名称和在连接字符串中指定的数据库服务器名称。
公共类 IncludeMetadataConvention 已过时。DbModelBuilder 约定将导致 DbModelBuilder 在生成模型时包含有关该模型的元数据。当 DbContext 按约定创建模型时,它会将此约定添加到由 DbModelBuilder 使用的项的列表中。如果使用 DbContext 创建数据库,则会导致将模型元数据写入数据库中。然后,可使用它来快速检查自上次对数据库使用模型后,模型是否发生了更改。可通过重写派生 DbContext 类的 OnModelCreating 方法,从 DbModelBuilder 约定中移除此约定。
公共类 LocalDbConnectionFactory 此类的实例用来基于给定的数据库名称或连接字符串创建 SQL Server LocalDb 的 DbConnection 对象。
公共类 ModelContainerConvention DbModelBuilder 约定将派生的 DbContext 类的名称用作由 Code First 生成的概念模型的容器。
公共类 ModelNamespaceConvention DbModelBuilder 约定将派生的 DbContext 类的命名空间用作由 Code First 生成的概念模型的命名空间。
公共类 ObjectReferenceEqualityComparer 使用引用相等性比较对象。
公共类 ReplacementDbQueryWrapper<TElement> 此类的实例用于内部创建 ObjectQuery<T> 的常量表达式,这些表达式将插入表达式树中以替换对 DbQuery<TResult>DbQuery 的引用。
公共类 RetryLimitExceededException 当操作重试了配置的次数后再次失败时引发的异常。
公共类 SqlCeConnectionFactory 此类的实例用来基于给定的数据库名称或连接字符串创建 SQL Server Compact Edition 的 DbConnection 对象。
公共类 SqlConnectionFactory 此类的实例用来基于给定的数据库名称或连接字符串创建 SQL Server 的 DbConnection 对象。默认情况下,将建立与“.\SQLEXPRESS”的连接。在构造工厂实例时,可通过更改基础连接字符串来更改此设置。
公共类 SuppressDbSetInitializationAttribute 此特性可应用于整个派生的 DbContext 类或该类上的单个 DbSet<TEntity>IDbSet<TEntity> 属性。应用此特性后,任何发现的 DbSet<TEntity>IDbSet<TEntity> 属性仍将包含在模型中,但将不再自动进行初始化。
公共类 TableExistenceChecker 由实体框架提供程序实现,用于检查给定的数据库中是否存在表。当确定是否将现有数据库作为空库处理以便应创建表时,数据库初始化程序使用该类。
公共类 TransactionContext CommitFailureHandler 使用此类向数据库中写入和从中读取事务跟踪信息。要自定义事务表的定义,您可以从此类派生并重写 OnModelCreating(DbModelBuilder)。可以使用 DbConfiguration 注册派生类。
公共类 TransactionHandler 表示处理事务操作的侦听器的基类。可使用 SetDefaultTransactionHandler(Func<TransactionHandler>)SetTransactionHandler(String, Func<TransactionHandler>, String) 注册派生类。
公共类 TransactionRow 表示一个事务。
公共类 UnintentionalCodeFirstException 当上下文从 Database First 或 Model First 模式中的 DbContext 模板生成,并在 Code First 模式中使用时引发的异常。

接口

  接口 描述
公共接口 IDbAsyncEnumerable IEnumerable 接口的异步版本,它允许异步检索元素。此接口用于与实体框架查询交互且不应由自定义类来实现。
公共接口 IDbAsyncEnumerable<T> IEnumerable<T> 接口的异步版本,它允许异步检索可枚举序列的元素。此接口用于与实体框架查询交互且不应由自定义类来实现。
公共接口 IDbAsyncEnumerator IEnumerator 接口的异步版本,它允许异步检索元素。此接口用于与实体框架查询交互且不应由自定义类来实现。
公共接口 IDbAsyncEnumerator<T> IEnumerator<T> 接口的异步版本,它允许异步检索元素。此接口用于与实体框架查询交互且不应由自定义类来实现。
公共接口 IDbAsyncQueryProvider 定义用于创建和异步执行 IQueryable 对象所描述的查询的方法。此接口用于与实体框架查询交互且不应由自定义类来实现。
公共接口 IDbConnectionFactory 此接口的实现用来基于给定的数据库名称创建某个数据库服务器类型的 DbConnection 对象。默认情况下,可在 Database 类上设置一个实例以便创建所有 DbContext 对象(不具有连接信息或只有数据库名称或连接字符串)以使用特定类型的数据库服务器。提供此接口的两种实现:SqlConnectionFactory 用于创建与速成版等 Microsoft SQL Server 的连接。SqlCeConnectionFactory 用于创建与 Microsoft SQL Server Compact Edition 的连接。可根据需要添加其他数据库服务器的其他实现。请注意实现应视为是线程安全的或不可变的,因为实现可同时被多个线程访问。
公共接口 IDbContextFactory<TContext> 用于创建派生 DbContext 实例的工厂。实现此接口可为没有公共默认构造函数的上下文类型启用设计时服务。在设计时,可以创建派生的 DbContext 实例,以启用特定设计时体验,如模型呈现和 DDL 生成。要为没有公共默认构造函数的派生 DbContext 启用设计时实例化,请实现此接口。设计时服务将自动发现与派生 DbContext 类型位于同一程序集中的此接口的实现。
公共接口 IDbExecutionStrategy 用于对数据库执行命令或查询的策略,可能具有在失败时进行重试的逻辑。
公共接口 IDbModelCacheKey 表示一个键值,它唯一地标识已加载到内存中的实体框架模型。
公共接口 IDbModelCacheKeyProvider 对您的上下文实现此接口,使用自定义逻辑来计算在缓存中查找已创建模型时所用的键。此接口允许您具有可与同一 AppDomain 中不同模型一起使用的单个上下文类型,或是具有使用同一模型的多个上下文类型。
公共接口 IDbProviderFactoryResolver 用于从给定的 DbConnection 获取正确的 DbProviderFactory 的服务。
公共接口 IManifestTokenResolver 用于获取给定连接的提供程序清单标记的服务。默认情况下使用 DefaultManifestTokenResolver 类并利用基础提供程序来获取通常涉及打开连接的标记。通过将 IDbDependencyResolver 添加到可能使用连接中的任何信息来返回标记的 DbConfiguration,可以改用其他实现。例如,如果已知连接指向 SQL Server 2008 数据库,则可以返回“2008”而无需打开连接。
公共接口 IMetadataAnnotationSerializer 实现此接口以允许由 MetadataProperty 实例表示的自定义注释序列化为 EDMX XML 以及从 EDMX XML 进行序列化。通常,使用 SetMetadataAnnotationSerializer(String, Func<IMetadataAnnotationSerializer>) 方法设置序列化程序实例。
公共接口 IObjectContextAdapter 由可提供 ObjectContext 实例的对象实现的接口。DbContext 类实现此接口以提供对基础 ObjectContext 的访问。
公共接口 IProviderInvariantName DbProviderFactory 解析提供程序固定名称时由 IDbDependencyResolverDbConfiguration 使用。

枚举

  枚举 描述
公共枚举 DbConnectionStringOrigin 描述与 DbContext 关联的数据库连接字符串的来源。