从VS C#创建Azure SQL数据库时设置服务层

在C#中从Visual Studio创建新数据库时是否可以设置Microsoft Azure SQL数据库服务层? 目前,我可以连接到Azure SQL服务器并创建表没有问题,但由于某种原因(可能是Microsoft Default),数据库将在Web中创建,这是将要停用的服务层。 我想根据需要将默认服务层设置为Basic,Standard或Premium。

到目前为止我发现的是当我调用这个方法时Database.Initialize(true)< – EF http://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize(v=vs .113).aspx它将创建数据库并将其设置为Web服务层。

使用Azure SQL v12,您可以选择指定SKU。 例:

var dbCreationCmd = $"CREATE DATABASE [{databaseName}] (MAXSIZE={maxSize}," + $"EDITION='{edition}'," + $"SERVICE_OBJECTIVE='{serviceObjective}')"; // With Azure SQL db V12, database creation TSQL became a sync process. // So we need a 10 minutes command timeout ExecuteNonQuery(connectionString, dbCreationCmd, commandTimeout: 600); 

正如Simon所提到的,只有在配置数据库之后才能完成SQL数据层。

从Powershell,这是一个可以称为数据库后期配置的function

 Function Update-DatabaseServiceTier { Param ( [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=0)][ValidateNotNullOrEmpty()] [String]$databasename, [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=1)][ValidateNotNullOrEmpty()] [String]$PerformanceLevel, [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=2)][ValidateNotNullOrEmpty()] [String]$Edition, [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=3)][ValidateNotNullOrEmpty()] [String]$MaxSize, [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=4)][ValidateNotNullOrEmpty()] [String]$SQLServerName, [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=5)][ValidateNotNullOrEmpty()] [String]$userId, [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=6)][ValidateNotNullOrEmpty()] [String]$password ) # Get current Database Details $DatabaseDetails = Get-AzureSqlDatabase -ServerName $SQLServerName -DatabaseName $databasename -ErrorAction Stop -WarningAction SilentlyContinue $currentEdition = $DatabaseDetails.Edition $currentSize = $DatabaseDetails.MaxSizeGB if (($currentEdition -ne $Edition) -or ($currentSize -ne $MaxSize)) { Write-Verbose " Upgrading the Database Edition - Database Size" # Set SQL Server Connection Context $server = Get-AzureSqlDatabaseServer $SQLServerName -ErrorAction Stop -WarningAction SilentlyContinue $servercredential = New-object System.Management.Automation.PSCredential($userId, ($password | ConvertTo-SecureString -asPlainText -Force)) $ctx = $server | New-AzureSqlDatabaseServerContext -Credential $serverCredential $db = Get-AzureSqlDatabase $ctx –DatabaseName $databasename -ErrorAction Stop -WarningAction SilentlyContinue $PL = Get-AzureSqlDatabaseServiceObjective -Context $ctx -ServiceObjectiveName $PerformanceLevel -ErrorAction Stop -WarningAction SilentlyContinue # Update SQL Server Properties (Service Objective, Edition and Size) Set-AzureSqlDatabase -ConnectionContext $ctx –Database $db -ServiceObjective $PL -Edition $Edition -MaxSizeGB $MaxSize -Force -ErrorAction Stop -WarningAction SilentlyContinue } else { Write-Verbose "" Write-Verbose " Database Edition and Size upto date!!" } }