Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Pomocí odkazů na projekty databáze SQL můžete vytvářet závislosti mezi projektem SQL a dalšími projekty. Existují dva primární typy odkazů na projekt:
-
Odkazy na databáze – Závislosti mezi projekty SQL nebo odkazy na
.dacpacsoubory a balíčky NuGet, které poskytují definice databázových objektů. - Odkazy na projekty .NET – Odkazy z projektů .NET na projekty SQL pro scénáře, jako je testování integrace, automatizace nasazení a generování kódu.
Když rozumíte tomu, kdy a jak používat jednotlivé typy odkazů, můžete efektivně strukturovat pracovní postup vývoje databáze.
Odkazy na databáze
Odkazy na databáze umožňují projektu SQL začlenit objekty z jiného projektu SQL, .dacpac souboru nebo publikovaného balíčku NuGet. Tyto odkazy se používají, když databázové objekty závisí na objektech definovaných jinde, například na tabulkách ve sdíleném schématu nebo na objektech systémové databáze.
Základní odkaz na databázi jiného projektu SQL ve stejném řešení vypadá takto:
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" />
</ItemGroup>
Odkazy na databáze podporují tři typy relací:
- Stejná databáze – objekty z odkazovaného projektu se stanou součástí stejného databázového modelu.
- Jiná databáze, stejný server – referenční objekty používající třídílné pojmenování s proměnnou SQLCMD pro název databáze.
- Jiná databáze, jiný server – referenční objekty používající čtyřdílné pojmenování s proměnnými SQLCMD pro názvy serverů i databází.
Podrobné informace o konfiguraci databázových odkazů, včetně příkladů pro jednotlivé typy relací a pokyny k vytváření a publikování projektů s odkazy, najdete v tématu Přehled odkazů na databáze.
Odkazy na projekty .NET
Projekty .NET můžou odkazovat na projekty SQL a integrovat vývoj databází s kódem aplikace. Tento typ odkazu je užitečný, když vaše aplikace .NET potřebuje přístup k výstupu sestavení projektu SQL ( .dacpac soubor) pro účely testování, nasazení nebo generování kódu.
Případy použití
Mezi běžné scénáře pro odkazování na projekt SQL z projektu .NET patří:
- Integrační testy – testovací projekty, které nasazují schéma databáze do testovacího kontejneru nebo místní instance před spuštěním testů.
-
Automatizace nasazení – Konzolové aplikace nebo nástroje, které programově nasazují
.dacpacdo cílových prostředí. - Generování kódu modelu – Aplikace, které generují kód na základě schématu databáze definovaného v projektu SQL.
Konfigurace odkazu na projekt
Když přidáte odkaz na projekt z projektu .NET do projektu SQL, musíte zahrnout ReferenceOutputAssembly="false" atribut. Tento atribut říká procesu sestavení .NET, aby s projektem SQL zacházeli jako se závislostí sestavení, aniž by se na něj pokusili odkazovat jako na sestavení .NET.
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" ReferenceOutputAssembly="false" />
</ItemGroup>
Nastavení ReferenceOutputAssembly="false" je povinné, protože projekty SQL vytvářejí .dacpac soubor jako svůj primární výstup, nikoli sestavení .NET. Bez tohoto atributu se proces sestavení .NET pokusí načíst .dacpac jako sestavení a selže s chybou podobnou této:
error CS0009: Metadata file 'Database1.dacpac' could not be opened -- Unknown file format.
Přístup k DACPAC v projektu .NET
Po nakonfigurování odkazu na projekt SQL se projekt SQL sestaví před projektem .NET. Soubor .dacpac je k dispozici ve výstupním adresáři projektu SQL (obvykle bin/Debug nebo bin/Release).
Pokud chcete získat přístup k .dacpac ve vašem .NET kódu, odkažte na cestu k souboru relativně ke struktuře projektu. Například v integračním testu, který k vytvoření instance SQL Serveru používá testcontainery:
// 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");
Zkopírujte dacpac do výstupního adresáře.
Pro snadnější přístup k .dacpac souboru nakonfigurujte projekt .NET tak, aby ho během sestavování zkopíroval do výstupního adresáře. Do svého souboru přidejte následující konfiguraci: .csproj
<ItemGroup>
<None Include="..\Database1\bin\$(Configuration)\Database1.dacpac"
CopyToOutputDirectory="PreserveNewest"
Link="Database1.dacpac" />
</ItemGroup>
Tato konfigurace zkopíruje .dacpac soubor do výstupního adresáře projektu .NET, abyste na něj mohli odkazovat pomocí jednodušší cesty:
var dacpacPath = Path.Combine(
AppContext.BaseDirectory,
"Database1.dacpac");