Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Az SQL Database-projektek projekthivatkozásaival függőségeket hozhat létre az SQL-projekt és más projektek között. A projekthivatkozások két elsődleges típusa van:
-
Adatbázis-hivatkozások – Az SQL-projektek közötti függőségek, illetve az adatbázis-objektumdefiníciókat biztosító fájlokra és NuGet-csomagokra
.dacpacmutató hivatkozások. - .NET-projekthivatkozások – Hivatkozások .NET-projektektől SQL-projektekig olyan forgatókönyvekhez, mint az integrációs tesztelés, az üzembe helyezés automatizálása és a kódgenerálás.
Ha tisztában van azzal, hogy mikor és hogyan használhatja az egyes referenciatípusokat, hatékonyan strukturálhatja az adatbázis-fejlesztési munkafolyamatot.
Adatbázis-hivatkozások
Az adatbázis-hivatkozások lehetővé teszik, hogy az SQL-projektek egy másik SQL-projektből, fájlból .dacpac vagy közzétett NuGet-csomagból származó objektumokat foglaljanak magukba. Ezek a hivatkozások akkor használatosak, ha az adatbázis-objektumok máshol definiált objektumoktól függnek, például megosztott sémák tábláitól vagy rendszeradatbázis-objektumoktól.
Egy alapszintű adatbázis-hivatkozás egy másik SQL-projektre ugyanabban a megoldásban a következőképpen néz ki:
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" />
</ItemGroup>
Az adatbázis-hivatkozások három kapcsolattípust támogatnak:
- Ugyanaz az adatbázis – A hivatkozott projekt objektumai ugyanahhoz az adatbázismodellhez tartoznak.
- Eltérő adatbázis, ugyanaz a kiszolgáló – Referenciaobjektumok háromrészes elnevezéssel az adatbázis nevének SQLCMD-változójával.
- Különböző adatbázis, különböző kiszolgáló – Referenciaobjektumok négyrészes elnevezéssel, SQLCMD-változókkal a kiszolgáló és az adatbázisnevek esetében.
Az adatbázis-hivatkozások konfigurálásával kapcsolatos részletes információkért, beleértve az egyes kapcsolattípusokra vonatkozó példákat, valamint a projektek referenciákkal való létrehozásának és közzétételének útmutatását az Adatbázis-hivatkozások áttekintésében találja.
.NET-projekthivatkozások
A .NET-projektek hivatkozhatnak SQL-projektekre az adatbázis-fejlesztés alkalmazáskóddal való integrálásához. Ez a referenciatípus akkor hasznos, ha a .NET-alkalmazásnak hozzáférésre van szüksége az SQL-projekt buildkimenetéhez (a .dacpac fájlhoz) tesztelés, üzembe helyezés vagy kódgenerálás céljából.
Használati esetek
Az SQL-projektek .NET-projektből való hivatkozásának gyakori forgatókönyvei a következők:
- Integrációs tesztek – Tesztelje azokat a projekteket, amelyek az adatbázissémát egy teszttárolóban vagy helyi példányon helyezik üzembe a tesztek futtatása előtt.
-
Üzembe helyezés automatizálása – Konzolalkalmazások vagy eszközök, amelyek programozott módon helyezik üzembe a
.dacpaccélkörnyezetekben. - Modellkód létrehozása – Az SQL-projektben definiált adatbázisséma alapján kódot létrehozó alkalmazások.
A projekthivatkozás konfigurálása
Amikor egy .NET-projektből hozzáad egy projekthivatkozást egy SQL-projekthez, tartalmaznia kell az ReferenceOutputAssembly="false" attribútumot. Ez az attribútum azt jelzi a .NET buildelési folyamatának, hogy az SQL-projektet buildfüggőségként kezelje anélkül, hogy .NET-szerelvényként kísérel meg hivatkozni rá.
<ItemGroup>
<ProjectReference Include="..\Database1\Database1.sqlproj" ReferenceOutputAssembly="false" />
</ItemGroup>
A ReferenceOutputAssembly="false" beállításra azért van szükség, mert az SQL-projektek elsődleges kimenetként egy fájlt hoznak létre .dacpac , nem .NET-szerelvényt. Ezen attribútum nélkül a .NET buildelési folyamata megpróbálja betölteni a .dacpac szerelvényt, és a következőhöz hasonló hibával meghiúsul:
error CS0009: Metadata file 'Database1.dacpac' could not be opened -- Unknown file format.
A DACPAC elérése a .NET-projektben
A projekthivatkozás konfigurálása után az SQL-projekt a .NET-projekt előtt épül fel. A .dacpac fájl elérhető az SQL-projekt kimeneti könyvtárában (általában bin/Debug vagy bin/Release).
Ha programozott módon szeretné elérni a .dacpac .NET-kódot, hivatkozzon a projektstruktúrához viszonyított fájlútvonalra. Például egy olyan integrációs tesztben, amely a Testcontainers használatával hoz létre egy SQL Server-példányt:
// 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");
A dacpac másolása a kimeneti könyvtárba
A fájl könnyebb elérése érdekében konfigurálja a .NET projektjét úgy, hogy a build során a kimeneti könyvtárba másolja. Adja hozzá a következő konfigurációt a .csproj fájlhoz:
<ItemGroup>
<None Include="..\Database1\bin\$(Configuration)\Database1.dacpac"
CopyToOutputDirectory="PreserveNewest"
Link="Database1.dacpac" />
</ItemGroup>
Ez a konfiguráció átmásolja a fájlt a .dacpac .NET-projekt kimeneti könyvtárába, így egyszerűbb útvonalon hivatkozhat rá:
var dacpacPath = Path.Combine(
AppContext.BaseDirectory,
"Database1.dacpac");