integrazione dell'hosting per progetti di database SQL .NET.NET Aspire
include:integrazione dell'hosting non Client
Nota
Questa integrazione fa parte di .NET.NET Aspire Community Toolkit e non è ufficialmente supportata dal team .NET.NET Aspire.
In questo articolo, imparerai come utilizzare l'integrazione dei progetti database SQL .NET Aspire per pubblicare lo schema del tuo database nel database SQL Server.
Prerequisiti
Questa integrazione richiede un progetto di database SQL basato su MSBuild.Sdk.SqlProj o Microsoft.Build.Sql.
Integrazione del servizio di hosting
Per iniziare a usare l'integrazione dell'hosting di progetti di database SQL .NET.NET Aspire, installare il pacchetto NuGet 📦 CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects nel progetto host dell'app.
- .NET interfaccia della riga di comando (CLI)
- PackageReference
dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects
Per ulteriori informazioni, vedere dotnet add package oppure Gestire le dipendenze dei pacchetti nelle applicazioni .NET.
Esempio di utilizzo
Aggiungere un riferimento al 📦 MSBuild.Sdk.SqlProj o al 📦 Microsoft.Build.Sql che si desidera pubblicare nel progetto host dell'app .NET.NET Aspire.
dotnet add reference ../MySqlProj/MySqlProj.csproj
Nota
L'aggiunta di questo riferimento genera attualmente un avviso ASPIRE004
nel progetto a causa della modalità di analisi dei riferimenti. Il team .NET.NET Aspire è a conoscenza di questo aspetto e stiamo lavorando a una soluzione più pulita.
Aggiungi il progetto come risorsa al AppHost .NET.NET Aspire.
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
.AddDatabase("test");
builder.AddSqlProject<Projects.MySqlProj>("mysqlproj")
.WithReference(sql);
Ora, quando esegui il progetto host dell'app .NET Aspire, vedrai che il progetto di database SQL viene pubblicato nel SQL Serverspecificato.
Supporto del file con estensione dacpac locale
Se si ottiene il file con estensione .dacpac da una fonte diversa rispetto a un riferimento al progetto, è anche possibile specificare direttamente il percorso del file con estensione .dacpac.
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
.AddDatabase("test");
builder.AddSqlProject("mysqlproj")
.WithDacpac("path/to/mysqlproj.dacpac")
.WithReference(sql);
Supporto delle opzioni di distribuzione
Per definire le opzioni che influiscono sul comportamento della distribuzione del pacchetto, chiamare l'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();
Il codice precedente:
- Aggiunge una risorsa sql server denominata
sql
e vi aggiunge una risorsa di databasetest
. - Aggiunge una risorsa di progetto SQL denominata
mysqlproj
e quindi configura l'DacDeployOptions. - La risorsa del progetto SQL dipende dalla risorsa del database.
Ridistribuire il supporto
Se si apportano modifiche al progetto di database SQL durante l'esecuzione dell'host dell'app, è possibile usare l'azione personalizzata Redeploy
nel dashboard .NET.NET Aspire per ridistribuire gli aggiornamenti senza dover riavviare l'host dell'app.