DatabaseSchemaProvider 类

为一组工厂对象和工厂方法提供基类。 这些对象和方法用于实例化与架构建模和脚本建模相关的服务对象,而这些服务对象共同表示 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 类型公开以下成员。

构造函数

  名称 说明
受保护的方法 DatabaseSchemaProvider 使用所提供的构造函数类型初始化 DatabaseSchemaProvider 类的一个新实例。

页首

属性

  名称 说明
公共属性 ExtensionManager 获取 Visual Studio Team System 2008 Database Edition 中当前数据库项目的 ExtensionManager
公共属性 FamilyName 获取一组提供程序的名称。例如,SQL Server 系列的数据库提供程序的系列名称为“sql”。
公共属性 ModelSchema 获取此提供程序的 ModelSchema 对象。
公共属性 UserInteractionServices 当在派生类中实现时,获取此提供程序的 UserInteractionServices 对象。

页首

方法

  名称 说明
公共方法 Equals 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
受保护的方法 Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法静态成员 GetCompatibleDatabaseSchemaProviderType 返回表示某种提供程序类型的 Type,该提供程序类型适用于由所提供连接字符串指向的数据库版本,并适用于所提供的系列名称。
公共方法静态成员 GetCompatibleDatabaseSchemaProviderTypes 返回与此提供程序兼容的提供程序类型的列表。
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
公共方法 GetSchemaUpgradeXslt 在派生类中实现时,返回 XSLT 来对所提供版本的架构模型进行转换,使之与当前架构模型相匹配。
公共方法 GetService<TService> 返回注册到此提供程序并由所提供的 Type 标识的实例化服务对象。
公共方法 GetServiceConstructor<TServiceConstructor> 返回所提供的 Type 标识的服务的构造函数。
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
受保护的方法 MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
受保护的方法 RegisterModelTypes 在派生类中实现时,注册在所提供的模型架构中找到的模型类型。
公共方法 SchemaVersionSupported 返回一个值,它指示所提供的版本是否与架构模型的版本相同,或是否有 XLST 可将架构模型转换为所提供的版本。
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)

页首

备注

使用此基类为 SQL Server 等特定数据库产品(通常由 SqlDatabaseSchemaProvider 类表示)创建具体的实现。SqlDatabaseSchemaProvider 用作多个数据库架构提供程序 (DSP)(如 Sql100DatabaseSchemaProviderSql90DatabaseSchemaProvider)中每一个的基类,这些数据库架构提供程序适用于特定版本的 SQL Server。

各种数据库产品的 DatabaseSchemaProvider 类的具体实现公开以下这些服务:

  • 将脚本文件分析到脚本模型中。

  • 将脚本模型解释为架构模型。

  • 从架构模型生成一个脚本模型。

  • 从脚本模型生成一个脚本文件。

除了这些高级功能,还可以公开更详细的服务,例如显示名称、图标或其他 UI 对象的比较服务和用户界面 (UI) 帮助。 这些详细服务由 DataProviderServices 类提供。

DatabaseSchemaProvider 实现还允许应用程序功能声明与各种 DSP 的兼容性。 例如,如果某个功能声明与 DatabaseSchemaProvider 兼容,则该功能设计为使用 IDatabaseTableIDatabaseColumn 等抽象接口。 如果某个功能声明与具体的实现(如 Sql100DatabaseSchemaProvider)兼容,则它设计为使用抽象接口(如 ISql100Table)。 只有当项目也是已声明的兼容提供程序类型时,才可以加载该功能。 这为特定于具体实现的功能提供了安全访问。

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.Data.Schema 命名空间

IExtension

Sql100DatabaseSchemaProvider

Sql90DatabaseSchemaProvider

IDatabaseTable

ISql100Table