Partilhar via


.NET .NET Aspire Integração de hospedagem de projetos de banco de dados SQL

Inclui:Integração de hospedagem não incluído Client integração

Observação

Essa integração faz parte do .NET.NET Aspire Community Toolkit e não é oficialmente suportada pela equipe .NET.NET Aspire.

Neste artigo, você aprenderá a usar a integração de hospedagem de Projetos de Banco de Dados SQL do .NET Aspire para publicar seu esquema de banco de dados em seu banco de dados SQL Server.

Pré-requisitos

Essa integração requer um projeto de banco de dados SQL baseado em MSBuild.Sdk.SqlProj ou Microsoft.Build.Sql.

Integração de hospedagem

Para começar a usar a integração de hospedagem do .NET.NET Aspire SQL Database Projects, instale o 📦 CommunityToolkit.Aspire. Hosting.SqlDatabaseProjects pacote NuGet no projeto host do aplicativo.

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects

Para obter mais informações, consulte dotnet add package ou Gerir dependências de pacotes em aplicações .NET.

Exemplo de utilização

Adicione uma referência ao 📦 MSBuild.Sdk.SqlProj ou 📦 projeto de Microsoft.Build.Sql que você deseja publicar em seu projeto de host de aplicativo .NET.NET Aspire:

dotnet add reference ../MySqlProj/MySqlProj.csproj

Observação

A adição de esta referência resultará atualmente num aviso ASPIRE004 no projeto devido à forma como as referências são processadas. A equipa .NET.NET Aspire está ciente disso e estamos a trabalhar numa solução mais limpa.

Adicione o projeto como um recurso ao seu .NET.NET Aspire AppHost:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject<Projects.MySqlProj>("mysqlproj")
       .WithReference(sql);

Agora, ao executar o seu projeto de host da aplicação .NET Aspire, você verá o Projeto do Banco de Dados SQL sendo publicado no SQL Serverespecificado.

Suporte ao arquivo .dacpac local

Se estiveres a fornecer o teu arquivo .dacpac de um local que não seja uma referência de projeto, também podes especificar o caminho para o arquivo .dacpac diretamente:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject("mysqlproj")
       .WithDacpac("path/to/mysqlproj.dacpac")
       .WithReference(sql);

Suporte a opções de implantação

Para definir opções que afetam o comportamento da implantação de pacotes, chame a API WithConfigureDacDeployOptions:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject("mysqlproj")
       .WithConfigureDacDeployOptions(options => options.IncludeCompositeObjects = true)
       .WithReference(sql);

builder.Build().Run();

O código anterior:

  • Adiciona um recurso de server SQL chamado sql e adiciona um recurso de banco de dados test a ele.
  • Adiciona um recurso de projeto SQL chamado mysqlproj e, em seguida, configura o DacDeployOptions.
  • O recurso de projeto SQL depende do recurso de banco de dados.

Suporte de reimplantação

Se você fizer alterações em seu projeto do Banco de dados SQL enquanto o host do aplicativo estiver em execução, poderá usar a ação personalizada Redeploy no painel .NET.NET Aspire para reimplantar suas atualizações sem precisar reiniciar o host do aplicativo.

Ver também