Я хотел бы создать базу данных с ядром 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.