为一组工厂对象和工厂方法提供基类。 这些对象和方法用于实例化与架构建模和脚本建模相关的服务对象,而这些服务对象共同表示 Visual Studio 中数据库项目的核心对象。
继承层次结构
System.Object
  Microsoft.Data.Schema.DatabaseSchemaProvider
    Microsoft.Data.Schema.Sql.SqlDatabaseSchemaProvider
命名空间:  Microsoft.Data.Schema
程序集:  Microsoft.Data.Schema(在 Microsoft.Data.Schema.dll 中)
语法
声明
Public MustInherit Class DatabaseSchemaProvider _
    Implements IExtension
public abstract class DatabaseSchemaProvider : IExtension
public ref class DatabaseSchemaProvider abstract : IExtension
[<AbstractClass>]
type DatabaseSchemaProvider =  
    class
        interface IExtension
    end
public abstract class DatabaseSchemaProvider implements IExtension
DatabaseSchemaProvider 类型公开以下成员。
构造函数
| 名称 | 说明 | |
|---|---|---|
| .gif) | DatabaseSchemaProvider | 使用所提供的构造函数类型初始化 DatabaseSchemaProvider 类的一个新实例。 | 
页首
属性
| 名称 | 说明 | |
|---|---|---|
| .gif) | ExtensionManager | 获取 Visual Studio Team System 2008 Database Edition 中当前数据库项目的 ExtensionManager。 | 
| .gif) | FamilyName | 获取一组提供程序的名称。例如,SQL Server 系列的数据库提供程序的系列名称为“sql”。 | 
| .gif) | ModelSchema | 获取此提供程序的 ModelSchema 对象。 | 
| .gif) | UserInteractionServices | 当在派生类中实现时,获取此提供程序的 UserInteractionServices 对象。 | 
页首
方法
| 名称 | 说明 | |
|---|---|---|
| .gif) | Equals | 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。) | 
| .gif) | Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) | 
| .gif) .gif) | GetCompatibleDatabaseSchemaProviderType | 返回表示某种提供程序类型的 Type,该提供程序类型适用于由所提供连接字符串指向的数据库版本,并适用于所提供的系列名称。 | 
| .gif) .gif) | GetCompatibleDatabaseSchemaProviderTypes | 返回与此提供程序兼容的提供程序类型的列表。 | 
| .gif) | GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) | 
| .gif) | GetSchemaUpgradeXslt | 在派生类中实现时,返回 XSLT 来对所提供版本的架构模型进行转换,使之与当前架构模型相匹配。 | 
| .gif) | GetService<TService> | 返回注册到此提供程序并由所提供的 Type 标识的实例化服务对象。 | 
| .gif) | GetServiceConstructor<TServiceConstructor> | 返回所提供的 Type 标识的服务的构造函数。 | 
| .gif) | GetType | 获取当前实例的 Type。 (继承自 Object。) | 
| .gif) | MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) | 
| .gif) | RegisterModelTypes | 在派生类中实现时,注册在所提供的模型架构中找到的模型类型。 | 
| .gif) | SchemaVersionSupported | 返回一个值,它指示所提供的版本是否与架构模型的版本相同,或是否有 XLST 可将架构模型转换为所提供的版本。 | 
| .gif) | ToString | 返回表示当前对象的字符串。 (继承自 Object。) | 
页首
备注
使用此基类为 SQL Server 等特定数据库产品(通常由 SqlDatabaseSchemaProvider 类表示)创建具体的实现。SqlDatabaseSchemaProvider 用作多个数据库架构提供程序 (DSP)(如 Sql100DatabaseSchemaProvider 和 Sql90DatabaseSchemaProvider)中每一个的基类,这些数据库架构提供程序适用于特定版本的 SQL Server。
各种数据库产品的 DatabaseSchemaProvider 类的具体实现公开以下这些服务:
- 将脚本文件分析到脚本模型中。 
- 将脚本模型解释为架构模型。 
- 从架构模型生成一个脚本模型。 
- 从脚本模型生成一个脚本文件。 
除了这些高级功能,还可以公开更详细的服务,例如显示名称、图标或其他 UI 对象的比较服务和用户界面 (UI) 帮助。 这些详细服务由 DataProviderServices 类提供。
DatabaseSchemaProvider 实现还允许应用程序功能声明与各种 DSP 的兼容性。 例如,如果某个功能声明与 DatabaseSchemaProvider 兼容,则该功能设计为使用 IDatabaseTable 和 IDatabaseColumn 等抽象接口。 如果某个功能声明与具体的实现(如 Sql100DatabaseSchemaProvider)兼容,则它设计为使用抽象接口(如 ISql100Table)。 只有当项目也是已声明的兼容提供程序类型时,才可以加载该功能。 这为特定于具体实现的功能提供了安全访问。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。