Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco de dados SQL no Microsoft Fabric
Com referências de projeto em projetos de banco de dados SQL, você pode criar dependências entre seu projeto SQL e outros projetos. Há dois tipos principais de referências de projeto:
-
Referências de banco de dados – dependências entre projetos SQL ou referências a
.dacpacarquivos e pacotes NuGet que fornecem definições de objeto de banco de dados. - Referências de projeto do .NET – referências de projetos .NET a projetos SQL para cenários como teste de integração, automação de implantação e geração de código.
Quando você entende quando e como usar cada tipo de referência, pode estruturar seu fluxo de trabalho de desenvolvimento de banco de dados com eficiência.
Referências de banco de dados
As referências de banco de dados permitem que um projeto SQL incorpore objetos de outro projeto SQL, um .dacpac arquivo ou um pacote NuGet publicado. Essas referências são usadas quando seus objetos de banco de dados dependem de objetos definidos em outro lugar, como tabelas em um esquema compartilhado ou objetos de banco de dados do sistema.
Uma referência básica de banco de dados a outro projeto SQL na mesma solução tem esta aparência:
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" />
</ItemGroup>
As referências de banco de dados dão suporte a três tipos de relação:
- Mesmo banco de dados – os objetos do projeto referenciado tornam-se parte do mesmo modelo de banco de dados.
- Banco de dados diferente, mesmo servidor – Referencia objetos usando nomenclatura de três partes com uma variável SQLCMD para o nome do banco de dados.
- Banco de dados diferente, servidor diferente - Objetos de referência usando nomenclatura de quatro partes com variáveis SQLCMD para nomes de servidor e banco de dados.
Para obter informações detalhadas sobre como configurar referências de banco de dados, incluindo exemplos para cada tipo de relação e diretrizes sobre como criar e publicar projetos com referências, consulte a visão geral das referências de banco de dados.
Referências de projeto do .NET
Os projetos do .NET podem referenciar projetos SQL para integrar o desenvolvimento de banco de dados ao código do aplicativo. Esse tipo de referência é útil quando seu aplicativo .NET precisa de acesso à saída de build do projeto SQL (o .dacpac arquivo) para fins de teste, implantação ou geração de código.
Casos de uso
Cenários comuns para referenciar um projeto SQL de um projeto .NET incluem:
- Testes de integração – testar projetos que implantam o esquema de banco de dados em um contêiner de teste ou instância local antes de executar testes.
-
Automação de implantação – Aplicativos de console ou ferramentas que implantam programaticamente o
.dacpacem ambientes de destino. - Geração de código de modelo – aplicativos que geram código com base no esquema de banco de dados definido no projeto SQL.
Configurar a referência do projeto
Ao adicionar uma referência de projeto de um projeto .NET a um projeto SQL, você deve incluir o ReferenceOutputAssembly="false" atributo. Esse atributo informa ao processo de build do .NET para tratar o projeto SQL como uma dependência de build sem tentar referenciá-lo como um assembly .NET.
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" ReferenceOutputAssembly="false" />
</ItemGroup>
A ReferenceOutputAssembly="false" configuração é necessária porque os projetos SQL produzem um .dacpac arquivo como sua saída primária, não um assembly .NET. Sem esse atributo, o processo de build do .NET tenta carregar o .dacpac como um assembly, mas falha com um erro semelhante a:
error CS0009: Metadata file 'Database1.dacpac' could not be opened -- Unknown file format.
Acessar o DACPAC em seu projeto .NET
Depois de configurar a referência do projeto, o projeto SQL será criado antes do projeto do .NET. O .dacpac arquivo está disponível no diretório de saída do projeto SQL (normalmente bin/Debug ou bin/Release).
Para acessar o .dacpac programaticamente em seu código .NET, faça referência ao caminho do arquivo relativo à estrutura do projeto. Por exemplo, em um teste de integração que usa Testcontainers para criar uma instância do SQL Server:
// Path to the dacpac file built by the referenced SQL project
var dacpacPath = Path.Combine(
Directory.GetCurrentDirectory(),
"..", "..", "..", "..",
"Database1", "bin", "Debug",
"Database1.dacpac");
// Use DacFx to deploy the dacpac to your test database
var dacServices = new DacServices(connectionString);
using var dacpac = DacPackage.Load(dacpacPath);
dacServices.Deploy(dacpac, "TestDatabase");
Copiar o dacpac para o diretório de saída
Para facilitar o .dacpac acesso ao arquivo, configure seu projeto .NET para copiá-lo para o diretório de saída durante o build. Adicione a configuração a seguir ao arquivo .csproj:
<ItemGroup>
<None Include="..\Database1\bin\$(Configuration)\Database1.dacpac"
CopyToOutputDirectory="PreserveNewest"
Link="Database1.dacpac" />
</ItemGroup>
Essa configuração copia o arquivo para o .dacpac diretório de saída do projeto .NET, para que você possa referenciá-lo usando um caminho mais simples:
var dacpacPath = Path.Combine(
AppContext.BaseDirectory,
"Database1.dacpac");