TSqlModel Class

Definition

Represents a model of a SQL Server database schema.

public sealed class TSqlModel : IDisposable
type TSqlModel = class
    interface IDisposable
Public NotInheritable Class TSqlModel
Implements IDisposable
Inheritance
TSqlModel
Implements

Constructors

TSqlModel(SqlServerVersion, TSqlModelOptions)

Creates an empty model that targets a specific SqlServerVersion

TSqlModel(String)

Loads a model from a DacPackage or BacPackage.

This is equivalent to calling LoadFromDacpac(String, ModelLoadOptions) with default values.

TSqlModel(String, DacSchemaModelStorageType)

Loads a model from a DacPackage or BacPackage.

This is equivalent to calling LoadFromDacpac(String, ModelLoadOptions) with default values for everything except the modelStorageType.

TSqlModel(String, DacSchemaModelStorageType, CancellationToken)

Loads a model from a DacPackage or BacPackage.

This is equivalent to calling LoadFromDacpac(String, ModelLoadOptions) with default values for everything except the modelStorageType.

Properties

CollationComparer

Comparer that can compare strings and ObjectIdentifiers using the collation of this TSqlModel. This can be very useful when comparing objects in the model since comparisons will be consistent with the expected comparison results in SQL Server

DisplayServices

Gets the DisplayServices that support producing display properties for objects in the model.

EngineVersion

The specific engine version targeted by the model.

For On Premises platforms this will be consistent with the SqlServerVersion - for instance Sql90 will have an engine version of 9.

For Microsoft Azure SQL Database the minimum valid version is 11, and the engine version will affect what features are supported in the model.

IsScriptBacked

Is this a model that is backed by scripts? In this case objects in the UserDefined scope will have source position information including a source name and information. This is important for scenarios such as use of the CodeAnalysisService.

Any empty TSqlModel created will be script-backed by default. Models loaded from a Dacpac will only be scipt backed if the LoadAsScriptBackedModel option is enabled. Note that creating a script-backed model will take longer than using a standard model loaded from a Dacpac

Version

The specific SQL Server release targeted by the model.

Methods

AddObjects(String)

Adds objects to the model based on the contents of a TSql Script string. The script should consist of valid TSql DDL statements.

Objects added using this method cannot be updated or deleted at a later point as update/delete requires a script name to be specified when adding the objects. If this is a requirement use the AddOrUpdateObjects(String, String, TSqlObjectOptions) method instead.

AddObjects(String, TSqlObjectOptions)

Add Objects to the model based on the contents of a TSql Script string, plus additional metadata defined by a TSqlObjectOptions object The script should consist of valid TSql DDL statements.

Objects added using this method cannot be updated or deleted at a later point as update/delete requires a script name to be specified when adding the objects. If this is a requirement use the AddOrUpdateObjects(String, String, TSqlObjectOptions) method instead.

AddObjects(TSqlScript)

Adds objects to the model based on the contents of a TSqlScript object. The script should be valid TSql with no parse errors.

Objects added using this method cannot be updated or deleted at a later point as update/delete requires a script name to be specified when adding the objects. If this is a requirement use the AddOrUpdateObjects(TSqlScript, String, TSqlObjectOptions) method instead.

AddObjects(TSqlScript, TSqlObjectOptions)

Add Objects to the model based on the contents of a TSqlScript object, plus additional metadata defined by a TSqlObjectOptions object The script should be valid TSql with no parse errors.

Objects added using this method cannot be updated or deleted at a later point as update/delete requires a script name to be specified when adding the objects. If this is a requirement use the AddOrUpdateObjects(TSqlScript, String, TSqlObjectOptions) method instead.

AddOrUpdateObjects(String, String, TSqlObjectOptions)

Adds or updates the objects defined for a specified sourceName with the objects defined in the inputScript. If any objects were previously added with the same sourceName these will be completely replaced The object definitions are based on the contents of a TSql Script string plus additional metadata defined by a TSqlObjectOptions object The script should consist of valid TSql DDL statements.

AddOrUpdateObjects(TSqlScript, String, TSqlObjectOptions)

Adds or updates the objects defined for a specified sourceName with the objects defined in the inputScript. If any objects were previously added with the same sourceName these will be completely replaced The object definitions are based on the contents of a TSqlScript object plus additional metadata defined by a TSqlObjectOptions object The script should consist of valid TSql DDL statements.

CheckVersionCompatibility(SqlServerVersion, CancellationToken)

Validates the model to determine whether it contains any elements that are not compatible with a target version of SQL Server or Azure SQL Database, and returns any errors or warnings.

ConvertToScriptedObject(TSqlObject, String)

Converts a specific top-level object in the model into a scripted representation of itself. This is useful when starting from a database sourced model and the caller wishes to modify this object's contents.

CopyModelOptions()

Copies the DatabaseOptions for the model to a TSqlModelOptions object. This is useful if you wish to duplicate the options for a model when creating a new model.

DeleteObjects(String)

Deletes any objects that were added to the model with the specified sourceName.

Dispose()

Releases all resources used by the TSqlModel object.

GetModelErrors()

Returns all DacModelErrors that are present in the model.

GetObject(ModelTypeClass, ObjectIdentifier, DacQueryScopes)

Returns TSqlObjects of the specified objectType and id. Only top level ModelTypeClass types are supported by this method - the objectType parameter must be in the types returned from the TopLevelTypes method or the call will fail.

GetObjects(DacQueryScopes, ModelTypeClass[])

Returns all TSqlObjects matching the list of typeFilters. Only top level ModelTypeClass types are supported by this method - all types in the typeFilters parameter must be present in the TopLevelTypes or the call will fail.

GetObjects(ModelTypeClass, ObjectIdentifier, DacQueryScopes)

Returns all TSqlObjects that match the ModelTypeClass and ObjectIdentifier. Only top level ModelTypeClass types are supported by this method - the objectType parameter must be in the types returned from the TopLevelTypes method or the call will fail.

GetObjects(String, ModelTypeClass[])

Returns all TSqlObjects in a given sourceName document filtered by ModelTypeClasss specified by the typeFilters parameter.

LoadFromDacpac(Stream, ModelLoadOptions)

Loads a model from a DacPackage or BacPackage using the specified options to configure what kind of storage to use, and whether to load a script-backed model or not.

LoadFromDacpac(Stream, ModelLoadOptions, CancellationToken)

Loads a model from a DacPackage or BacPackage using the specified options to configure what kind of storage to use, and whether to load a script-backed model or not.

LoadFromDacpac(String, ModelLoadOptions)

Loads a model from a DacPackage or BacPackage using the specified options to configure what kind of storage to use, and whether to load a script-backed model or not.

LoadFromDacpac(String, ModelLoadOptions, CancellationToken)

Loads a model from a DacPackage or BacPackage using the specified options to configure what kind of storage to use, and whether to load a script-backed model or not.

LoadFromDatabase(String, ModelExtractOptions, Nullable<CancellationToken>)

Loads a model from a database using the specified options.

LoadFromDatabase(String, SecureString, ModelExtractOptions, Nullable<CancellationToken>)

Loads a model from a database using the specified options.

LoadFromDatabaseWithAuthProvider(String, IUniversalAuthProvider, ModelExtractOptions, Nullable<CancellationToken>)

Loads a model from a database using the specified options.

Validate()

Validates the model and returns a list of messages with any errors/warnings.

Applies to