Как создать базу данных в лазурном эластичном пуле с ядром структуры сущностей? - PullRequest
0 голосов
/ 12 апреля 2019

Я хотел бы создать базу данных с ядром Entity Framework, которая будет автоматически добавлена ​​в мой Azure Elactic Pool.

Я делаю это с помощью DatabaseFacadeExtension, которая выполняет команду SQL после создания БД, как предложено здесь: Azure SQL Server Elastic Pool - автоматическое добавление базы данных в пул

public static async Task<bool> EnsureCreatedAsync(this DatabaseFacade databaseFacade, string elasticPoolName, CancellationToken cancellationToken = default)
        {
            if (!await databaseFacade.EnsureCreatedAsync(cancellationToken)) return false;

            // the database has been created.

            var dbName = databaseFacade.GetDbConnection().Database;

            try
            {
                cancellationToken.ThrowIfCancellationRequested();

                if (!string.IsNullOrEmpty(elasticPoolName))
                {
                    await databaseFacade.ExecuteSqlCommandAsync(new RawSqlString(
                            $"ALTER DATABASE {dbName} MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL (name = [{elasticPoolName}] ));"),
                        cancellationToken);
                }

                return true;

            }
            catch
            {
                await databaseFacade.EnsureDeletedAsync(cancellationToken);
                throw;
            }

        }

Это работает, но я предпочту атомарную операцию, когда база данных будет создана непосредственно в Azure Elastic Pool.

1 Ответ

0 голосов
/ 12 апреля 2019

Azure Elastic Pool поддерживает создание новой базы данных в существующем пуле или в качестве единой базы данных. Для создания новой базы данных вы должны быть подключены к основной базе данных.

enter image description here

Подробнее см. В Transact-SQL: Управление объединенными базами данных .

Пример кода T-SQL :

Создание базы данных в эластичном пуле:

CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) ) ;

См. Единая база данных / эластичный пул базы данных SQL Azure

Вы можете заменить оператор T-SQL и повторить попытку.

Надеюсь, это поможет

...