.NET .NET Aspire integração de hospedagem de Projetos do Banco de Dados SQL
Inclui:integração de hospedagem não Client
Nota
Essa integração faz parte do .NET.NET Aspire Community Toolkit e não é oficialmente suportada pela equipe de .NET.NET Aspire.
Neste artigo, você aprenderá a usar a integração de hospedagem de projetos do Banco de Dados SQL .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 com base em MSBuild.Sdk.SqlProj ou Microsoft.Build.Sql.
Integração de hospedagem
Para começar a usar a integração de hospedagem de projetos do Banco de Dados SQL .NET.NET Aspire, 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 Gerenciando dependências de pacotes em aplicativos .NET.
Exemplo de uso
Adicione uma referência ao projeto 📦 MSBuild.Sdk.SqlProj ou 📦 Microsoft.Build.Sql que você deseja publicar em seu projeto de host do aplicativo .NET.NET Aspire:
dotnet add reference ../MySqlProj/MySqlProj.csproj
Nota
Adicionar esta referência resultará em um aviso ASPIRE004
no projeto devido à maneira como as referências são analisadas. A equipe de .NET.NET Aspire está ciente disso e estamos trabalhando em uma solução mais limpa.
Adicione o projeto como um recurso ao AppHost .NET.NET Aspire:
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
.AddDatabase("test");
builder.AddSqlProject<Projects.MySqlProj>("mysqlproj")
.WithReference(sql);
Agora, ao executar seu projeto hospedeiro do aplicativo .NET Aspire, você verá o projeto de banco de dados SQL sendo publicado no SQL Serverespecificado.
Suporte ao arquivo .dacpac local
Se você estiver fornecendo seu arquivo .dacpac de algum lugar diferente de uma referência de projeto, também poderá 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 do pacote, 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 configura o DacDeployOptions. - O recurso de projeto do SQL depende do recurso de banco de dados.
Reimplante o suporte
Se você fizer alterações no 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.
Consulte também
- MSBuild.Sdk.SqlProj GitHub repositório
- Microsoft.Build.Sql GitHub repositório
- Introdução aos projetos do banco de dados SQL
- repositório do Kit de Ferramentas da Comunidade