Partager via


.NET .NET Aspire intégration de l'hébergement des projets de base de données SQL

Inclut :intégration d’hébergementpasClient d’intégration

Remarque

Cette intégration fait partie du community Toolkit et n’est pas officiellement prise en charge par l’équipe .

Dans cet article, vous allez apprendre à utiliser l’intégration d’hébergement .NET Aspire projets SQL Database pour publier votre schéma de base de données dans votre base de données SQL Server.

Conditions préalables

Cette intégration nécessite un projet SQL Database basé sur MSBuild.Sdk.SqlProj ou Microsoft.Build.Sql.

Intégration de l’hébergement

Pour commencer à utiliser l'intégration d'hébergement des projets de bases de données SQL .NET.NET Aspire, installez le package NuGet 📦 CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects dans le projet hôte de l'application.

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects

Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances de packages dans les applications .NET.

Exemple d’utilisation

Ajoutez une référence au projet 📦 MSBuild.Sdk.SqlProj ou 📦 projet Microsoft.Build.Sql que vous souhaitez publier dans votre projet hôte d’application .NET.NET Aspire :

dotnet add reference ../MySqlProj/MySqlProj.csproj

Remarque

L’ajout de cette référence entraîne actuellement l’avertissement ASPIRE004 sur le projet en raison de la façon dont les références sont analysées. L’équipe .NET.NET Aspire est consciente de cela et nous travaillons à une solution plus propre.

Ajoutez le projet en tant que ressource à votre .NET.NET Aspire AppHost :

var builder = DistributedApplication.CreateBuilder(args);

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

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

À présent, lorsque vous exécutez votre projet hôte d’application .NET Aspire, vous voyez le projet de base de données SQL publié vers la SQL Serverspécifiée.

Prise en charge des fichiers .dacpac locaux

Si vous approvisionnez votre fichier .dacpac à partir d’un autre emplacement qu’une référence de projet, vous pouvez également spécifier le chemin d’accès au fichier .dacpac directement :

var builder = DistributedApplication.CreateBuilder(args);

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

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

Prise en charge des options de déploiement

Pour définir des options qui affectent le comportement du déploiement de package, appelez 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();

Code précédent :

  • Ajoute une ressource SQL server nommée sql et ajoute une ressource de base de données test.
  • Ajoute une ressource de projet SQL nommée mysqlproj, puis configure l'DacDeployOptions.
  • La ressource de projet SQL dépend de la ressource de base de données.

Soutien au redéploiement

Si vous apportez des modifications à votre projet SQL Database pendant l’exécution de l’hôte de l’application, vous pouvez utiliser l’action Redeploy personnalisée sur le tableau de bord .NET.NET Aspire pour redéployer vos mises à jour sans avoir à redémarrer l’hôte de l’application.

Voir aussi