.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.
- .NET CLI
- ReferênciaDePacote
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 dadostest
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.