Microsoft.SqlServer.Management.Dac Namespace

The Microsoft.SqlServer.Management.Dac namespace contains classes that represent the Dac objects. The top-level instance is called DacStore and provides the connection to SQL Server. The Dac objects can be used to create and manage a DAC package, which contains all the information required to re-create a data-tier application.

The Microsoft.SqlServer.Management.Dac namespace contains the DAC objects. The DAC objects are used together with the Microsoft.SqlServer.Managment.Smo, Microsoft.SqlServer.Managment.Dmf, and Microsoft.SqlServer.Managment.Utility namespaces to create DAC packages. The DAC packages can be installed on an instance of SQL Server using the DAC object model, or deployed onto the SQL Server Utility using the SQL Server Utility object model. In Design mode, SMO is not connected to an instance of SQL Server. The SMO objects are used to design a data-tier application structure which can be saved into the DAC package. A DAC package can also include a limited amount of reference data and some miscellaneous files. Policy information is stored for each SMO instance class, and for the overall instance of SQL Server using DMF conditions. After it is created, the DAC package can be used to install the data-tier application on an instance of SQL Server that meets the specified DMF conditions. In connected mode, the SMO Server object represents an instance of SQL Server.

The Microsoft.SqlServer.Management.Dac namespace resides in the Microsoft.SqlServer.Management.Dac.dll file. Additionally, some of the enumeration classes are in the Microsoft.SqlServer.Management.DacEnum.dll files. You must import both files to access the classes in the Microsoft.SqlServer.Management.Dac namespace. In addition, you must import the Microsoft.SqlServer.Managment.Smo, Microsoft.SqlServer.Managment.Dmf, and Microsoft.SqlServer.Managment.Sdk.Sfc namespaces to create a DAC package.

By using the Microsoft.SqlServer.Management.Dac namespace, you can do the following:

  • Create an object graph that represents the data-tier application structure.

  • Add reference data.

  • Add miscellaneous files

  • Add deployment conditions.

  • Add configuration conditions.

  • Install the DAC package.

  • Upgrade a DAC package.

  • Create a DAC package.

  • Load and save a DAC package from file (serialize and deserialize).


  Class Description
Public class ActionNotSupportedException The exception that is thrown when the requested data-tier action, such as upgrade or register, is not supported by the version of the Database Engine the application is connected to.
Public class BacpacException Represents the error occurred during bacpac operation.
Public class BinarySourceBase The BinarySourceBase type is a base class that provides access to the IBinarySource interface.
Public class ConnectionNotSetException The ConnectionNotSetException class is used to raise an exception when the connection passed to a DAC action, such as install, upgrade, or uninstall.
Public class DacActionEventArgs Represents the data sent when an event is raised by a DAC action step during both deployment and uninstall.
Public class DacActionValidator Validates that the requirements of the DAC action (install, upgrade, or uninstall) are in place.
Public class DacCompilationError The CompilationError class represents an error generated when the DAC package is being compiled.
Public class DacCompilationErrorCollection The DacCompilationErrorCollection type stores a collection of DAC compilation errors.
Public class DacCompilationResult The DacCompilationResult class represents the DAC package and the collection of errors generated by compiling it.
Public class DacCompilationUnit The DacCompilationUnit accepts Transact-SQL content and compiles it into a data-tier application (DAC) type. Any Transact-SQL file can be added or removed prior to compilation. 
Public class DacConfig Represents the data-tier application (DAC) configuration information.
Public class DacDatabaseInformation The DacDatabaseInformation object stores information about data-tier application (DAC) actions that can be performed on a database.
Public class DacDomain The DacDomain class instantiates the Microsoft.SqlServer.Management.Sdk.Sfc methods and properties inherited by the DacStore class.
Public class DacDomain.Key Contains the key that identifies the DacDomain class.
Public class DacException The DacException class is a generic exception that is raised when an error occurs using the Microsoft.SqlServer.Management.Dac namespace.
Public class DacExtractionException The DacExtractionException class is a an exception that is raised when an error occurs during extraction of a DAC package.
Public class DacExtractionUnit The DacExtractionUnit class contains the information that must be extracted to a DAC type, such as server graphs and miscellaneous files.
Public class DacExtractValidationResult The DacExtractValidationResult object represents the result of extracting objects from a DAC package.
Public class DacInstance The DacInstance type stores metadata information, such as the instance name and date created, about a deployed instance of a data-tier application (DAC).
Public class DacInstance.Key The DacInstance.Key class represents the key that identifies the DacInstance class.
Public class DacInstanceCollection The DacInstanceCollection type stores one or more DAC instances contained in an instance of the Database Engine.
Public class DacLogEntry Provides the format for log entries coming from DAC framework.
Public class DacServerInformation Specifies the level of support for data-tier application (DAC) operations, such as upgrade, in an instance of the Database Engine.
Public class DacStore The root class of the DAC Domain. The Main role of this class is to store the connection and interact with the SFC framework for most of the services.
Public class DacType The DacType class represents the set of data-tier objects, policies, and properties developed and deployed to support a specific application.
Public class DacUpgradeOptions Use the DacUpgrade type to specify which options are taken when upgrading a DAC instance.
Public class DacUpgradeResult The DacUpgradeResult class records information about the results of upgrading a DAC instance.
Public class DatabaseConfigurationProperties Represents a class that is used to configure properties to store settings corresponding to settings that fall in between application/host level artifacts.
Public class DatabaseDeploymentProperties The DatabaseDeploymentProperties object represents the properties of a deployed database.
Public class DatabaseExtractValidator Validates that the database can be extracted.
Public class DeploymentValidationException The DeploymentValidationException class represents an exception thrown during DAC deployment due to a validation error.
Public class DesignModeServerExtractException The DesignModeServerExtractException class represents an exception that is raised the server containing the database specified in an extract operation is in Design mode.
Public class ExtractValidationException The ExtractValidationException class represents an exception thrown during a validation operation.
Public class FailedTargetSelectionException The FailedTargetSelectionException class represents an exception that is thrown when target selection policy fails during deployment of a DAC.
Public class FileExtraSource The FileSource type represents a miscellaneous file that is included in the DAC package.
Public class InvalidaDACTypeCredentialsException The InvalidDacTypeCredentialsException class is an exception that is raised when upgrading a DAC if the credentials of the new DAC type do not match the credentials of the current DAC instance.
Public class InvalidaDatabaseStateException The InvalidDatabaseStateException class is an exception that is raised when a database is in a state that cannot support a requested data-tier application (DAC) action, such as deploy or upgrade.
Public class InvalidDatabaseExtractException The DatabaseExtractException class is an exception that is raised when the database specified in an extract operation is invalid.
Public class InvalidDatabaseStateForExtractException The DatabaseExtractException class is an exception that is raised when the database state prevents an extraction operation.
Public class InvalidInputException The InvalidInputException class is raised when validation of input data fails in the DAC package.
Public class MiscellaneousFilesCollection The MiscellaneousFilesCollection class contains a collection of files to be added to the DAC package.
Public class MissingDacSchemaException The MissingDacSchemaException class is an exception that is raised during validation when the DAC schema is missing.
Public class MissingExtractServerPermissionsException Represents an exception that is raised during extraction when the caller has insufficient permissions on the server to extract the database.
Public class MissingServerPermissionsException The MissingServerPermissionsException class represents an exception that is raised when the caller has insufficient permissions on the server to deploy the DAC.
Public class MissingServerPermissionsForRePartException The MissingServerPermissionsForRePartException class represents an exception that is raised when the caller does not have sufficient permissions
Public class ServerDeploymentValidator Validates that the specified database engine is able to be used as a DAC store.
Public class SourceInfo The SourceInfo class represents a location in a DAC source file that has thrown an exception.
Public class TableName Represents a class used to get the table names for selective export of tables.
Public class TSqlCompilationException The TSqlCompilationException class represents an exception that is thrown during Transact-SQL compilation.
Public class TSqlSourceFile The TSqlSourceFile class represents a Transact-SQL source file.
Public class UserLoginMapping Represents a collection of user login maps.
Public class ValidatedObject The ValidatedObject class describes objects that have been validated.
Public class ValidatedObjectEventArgs Represents an object that was validated as part of a data-tier application (DAC) action, such as deploy or delete.


  Structure Description
Public structure Location Represents the location of the source of the error in the Transact-SQL input files to the DAC compilation unit.
Public structure UserLoginMap Represents a mapping between user and login.


  Interface Description
Public interface IBinarySource The IBinarySource type is an interface that provides access to an I/O file stream.
Public interface IExtraSource The IExtraSource type is an interface that provides I/O stream access to a miscellaneous file in the DAC package.
Public interface ISizeItem Defines an interface that allows the implementing class to calculate its size.


  Enumeration Description
Public enumeration ActionName The ActionName enumeration lists the names of each possible action step.
Public enumeration ActionState The ActionState enumeration lists the possible DAC action step states.
Public enumeration AzureEdition Specifies the azure edition used.
Public enumeration DacExceptionType The DacExceptionType enumeration contains values that are used to specify the type of DAC exception.
Public enumeration DacUninstallMode The DacUninstallMode enumeration contains values that are used to specify what to do with the database associated with a DAC instance when the instance is uninstalled.
Public enumeration DatabaseState Enumerates the possible states of the DAC database.
Public enumeration MessageLevel Enumerates the DAC message level.
Public enumeration ObjectValidationResult An enumeration that specifies the values for reporting the results of validating or extracting an object.