Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Odwołania do projektu w projektach bazy danych SQL umożliwiają tworzenie zależności między projektem SQL a innymi projektami. Istnieją dwa podstawowe typy odwołań do projektu:
-
Odwołania do bazy danych — zależności między projektami SQL lub odwołaniami do
.dacpacplików i pakietów NuGet, które zapewniają definicje obiektów bazy danych. - Odwołania do projektów platformy .NET — odwołania z projektów .NET do projektów SQL dla scenariuszy, takich jak testowanie integracji, automatyzacja wdrażania i generowanie kodu.
Kiedy rozumiesz, kiedy i jak używać poszczególnych typów odwołań, możesz efektywnie utworzyć strukturę przepływu pracy tworzenia bazy danych.
Odwołania do bazy danych
Odwołania do bazy danych umożliwiają projektowi SQL dołączanie obiektów z innego projektu SQL, .dacpac pliku lub opublikowanego pakietu NuGet. Odwołania te są używane, gdy obiekty bazy danych zależą od obiektów zdefiniowanych gdzie indziej, takich jak tabele w udostępnionym schemacie lub obiektach systemowej bazy danych.
Podstawowe odwołanie bazy danych do innego projektu SQL w tym samym rozwiązaniu wygląda następująco:
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" />
</ItemGroup>
Odwołania do bazy danych obsługują trzy typy relacji:
- Ta sama baza danych — obiekty z przywołynego projektu stają się częścią tego samego modelu bazy danych.
- Inny serwer, ten sam serwer — odwołania do obiektów używających trzyczęściowego nazewnictwa ze zmienną SQLCMD dla nazwy bazy danych.
- Różne bazy danych, inny serwer — odwołania do obiektów używających czteroczęściowego nazewnictwa ze zmiennymi SQLCMD dla nazw serwerów i baz danych.
Aby uzyskać szczegółowe informacje na temat konfigurowania odwołań do bazy danych, w tym przykłady dla każdego typu relacji i wskazówki dotyczące kompilowania i publikowania projektów z odwołaniami, zobacz Omówienie odwołań do bazy danych.
Odwołania do projektu platformy .NET
Projekty platformy .NET mogą odwoływać się do projektów SQL w celu zintegrowania tworzenia bazy danych z kodem aplikacji. Ten typ odwołania jest przydatny, gdy aplikacja .NET potrzebuje dostępu do danych wyjściowych kompilacji projektu SQL ( .dacpac pliku) na potrzeby testowania, wdrażania lub generowania kodu.
Przypadki użycia
Typowe scenariusze odwoływania się do projektu SQL z projektu platformy .NET obejmują:
- Testy integracji — testowanie projektów, które wdrażają schemat bazy danych w kontenerze testowym lub wystąpieniu lokalnym przed uruchomieniem testów.
-
Automatyzacja wdrażania — aplikacje konsolowe lub narzędzia, które programowo wdrażają
.dacpacw środowiskach docelowych. - Generowanie kodu modelu — aplikacje generujące kod na podstawie schematu bazy danych zdefiniowanego w projekcie SQL.
Konfigurowanie odwołania do projektu
Po dodaniu odwołania do projektu .NET do projektu SQL należy dołączyć atrybut ReferenceOutputAssembly="false". Ten atrybut nakazuje procesowi kompilacji platformy .NET traktowanie projektu SQL jako zależności kompilacji bez próby odwołania się do niego jako zestawu platformy .NET.
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" ReferenceOutputAssembly="false" />
</ItemGroup>
To ReferenceOutputAssembly="false" ustawienie jest wymagane, ponieważ projekty SQL tworzą .dacpac plik jako podstawowe dane wyjściowe, a nie zestaw .NET. Bez tego atrybutu proces kompilacji platformy .NET próbuje załadować .dacpac element jako zestaw i kończy się niepowodzeniem z błędem podobnym do następującego:
error CS0009: Metadata file 'Database1.dacpac' could not be opened -- Unknown file format.
Uzyskiwanie dostępu do pakietu DACPAC w projekcie platformy .NET
Po skonfigurowaniu odwołania do projektu najpierw budowany jest projekt SQL, a następnie projekt .NET. Plik .dacpac jest dostępny w katalogu wyjściowym projektu SQL (zazwyczaj bin/Debug lub bin/Release).
Aby uzyskać programowo dostęp do .dacpac w kodzie .NET, należy odwołać się do ścieżki pliku względem struktury projektu. Na przykład w teście integracji, który używa narzędzia Testcontainers do utworzenia wystąpienia programu 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");
Kopiowanie pliku dacpac do katalogu wyjściowego
Aby ułatwić dostęp do .dacpac pliku, skonfiguruj projekt .NET, aby skopiować go do katalogu wyjściowego podczas kompilacji. Dodaj następującą konfigurację do .csproj pliku:
<ItemGroup>
<None Include="..\Database1\bin\$(Configuration)\Database1.dacpac"
CopyToOutputDirectory="PreserveNewest"
Link="Database1.dacpac" />
</ItemGroup>
Ta konfiguracja kopiuje .dacpac plik do katalogu wyjściowego projektu .NET, aby można było do niego odwoływać się przy użyciu prostszej ścieżki:
var dacpacPath = Path.Combine(
AppContext.BaseDirectory,
"Database1.dacpac");