Megosztás a következőn keresztül:


SqlMetal.exe (kódgenerálási eszköz)

Az SqlMetal parancssori eszköz létrehozza a LINQ és a .NET-keretrendszer SQL-összetevőjének kódját és leképezését. A jelen témakör későbbi részében megjelenő beállítások alkalmazásával utasíthatja az SqlMetalt, hogy hajtsa végre a következő műveleteket:

  • Adatbázisból hozzon létre forráskódot és leképezési attribútumokat vagy egy leképezési fájlt.

  • Adatbázisból hozzon létre egy köztes adatbázis-korrektúranyelvet (.dbml) a testreszabáshoz.

  • .dbml-fájlból hozzon létre kód- és leképezési attribútumokat vagy leképezési fájlt.

Ez az eszköz automatikusan telepítve van a Visual Studio 2019 és korábbi verzióival. A fájl alapértelmezés szerint a következő helyen található: %ProgramFiles%\Microsoft SDKs\Windows[version]\bin. Ha nem telepíti a Visual Studiót, a Windows SDK letöltésével is lekérheti az SQLMetal-fájlt.

Feljegyzés

A Visual Studiót használó fejlesztők az Objektum relációs tervezővel is létrehozhatnak entitásosztályokat. A parancssori megközelítés jól méretez nagy adatbázisok esetében. Mivel az SqlMetal parancssori eszköz, buildelési folyamatban is használhatja.

Az eszköz futtatásához használja a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt. A parancssorban adja meg a következő parancsot:

sqlmetal [options] [<input file>]  

Beállítások

A legújabb beállításlista megtekintéséhez írjon be sqlmetal /? egy parancssort a telepített helyről.

Kapcsolati beállítások

Lehetőség Leírás
/server: <name> Megadja az adatbázis-kiszolgáló nevét.
/database: <name> A kiszolgálón található adatbáziskatalógust adja meg.
/user: <name> Megadja a bejelentkezési felhasználó azonosítóját. Alapértelmezett érték: Windows-hitelesítés használata.
/password: <password> Megadja a bejelentkezési jelszót. Alapértelmezett érték: Windows-hitelesítés használata.
/conn: <kapcsolati sztring> Megadja az adatbázis-kapcsolati sztring. A /server, /database, /user vagy /password beállításokkal nem használható.

Ne adja meg a fájlnevet a kapcsolati sztring. Ehelyett adja hozzá a fájlnevet a parancssorhoz bemeneti fájlként. A következő sor például a "c:\northwnd.mdf" értéket adja meg bemeneti fájlként: sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf".
/időtúllépés: <másodperc> Időtúllépési értéket ad meg, amikor az SqlMetal hozzáfér az adatbázishoz. Alapértelmezett érték: 0 (azaz nincs időkorlát).

Kinyerési lehetőségek

Lehetőség Leírás
/Kilátás nyílik Kinyeri az adatbázisnézeteket.
/Funkciók Kinyeri az adatbázisfüggvényeket.
/sprocs Kinyeri a tárolt eljárásokat.

Kimeneti beállítások

Lehetőség Leírás
/dbml [:file] Kimenet küldése .dbml néven. A /map beállítással nem használható.
/code [:file] Kimenetet küld forráskódként. A /dbml beállítással nem használható.
/map [:file] Attribútumok helyett XML-megfeleltetési fájlt hoz létre. A /dbml beállítással nem használható.

Egyéb

Lehetőség Leírás
/language: <language> Megadja a forráskód nyelvét.

Érvényes <nyelv>: vb, csharp.

Alapértelmezett érték: A kódfájlnév bővítményéből származik.
/namespace: <name> Megadja a létrehozott kód névterét. Alapértelmezett érték: nincs névtér.
/context: <type> Az adatkörnyezet osztályának nevét adja meg. Alapértelmezett érték: Az adatbázis nevéből származik.
/entitybase: <type> Megadja az entitásosztályok alaposztályát a létrehozott kódban. Alapértelmezett érték: Az entitások nem rendelkeznek alaposztályokkal.
/pluralize Automatikusan pluralizálja vagy szingularizálja az osztály- és tagneveket.

Ez a lehetőség csak az amerikai angol verzióban érhető el.
/szerializálás: <beállítás> Szerializálható osztályokat hoz létre.

Érvényes <beállítás>: Nincs, Egyirányú. Alapértelmezett érték: Nincs.

További információ: Szerializálás.

Bemeneti fájl

Lehetőség Leírás
<bemeneti fájl> Sql Server Express .mdf fájlt, SQL Server Compact 3.5 .sdf fájlt vagy .dbml köztes fájlt határoz meg.

Megjegyzések

Az SqlMetal funkció valójában két lépésből áll:

  • Az adatbázis metaadatainak kinyerése .dbml fájlba.

  • Kódkimenetfájl létrehozása.

    A megfelelő parancssori beállítások használatával létrehozhat Visual Basic- vagy C#-forráskódot, vagy létrehozhat egy XML-megfeleltetési fájlt.

Ha egy .mdf fájlból szeretné kinyerni a metaadatokat, minden egyéb beállítás után meg kell adnia a .mdf fájl nevét.

Ha nincs megadva /kiszolgáló , a rendszer a localhost/sqlexpress függvényt feltételezi.

A Microsoft SQL Server 2005 kivételt eredményez, ha az alábbi feltételek közül egy vagy több teljesül:

  • Az SqlMetal megpróbál kinyerni egy tárolt eljárást, amely meghívja magát.

  • A tárolt eljárás, függvény vagy nézet beágyazási szintje meghaladja a 32-t.

    Az SqlMetal elkapja ezt a kivételt, és figyelmeztetésként jelenti.

Bemeneti fájlnév megadásához adja hozzá a nevet a parancssorhoz bemeneti fájlként. A kapcsolati sztring (a /conn beállítás használata) nem támogatja a fájlnevet.

Példák

Hozzon létre egy .dbml-fájlt, amely kinyert SQL-metaadatokat tartalmaz:

sqlmetal /server:myserver /database:northwind /dbml:mymeta.dbml

Hozzon létre egy .dbml-fájlt, amely egy .mdf fájlból kinyert SQL-metaadatokat tartalmaz az SQL Server Express használatával:

sqlmetal /dbml:mymeta.dbml mydbfile.mdf

Hozzon létre egy .dbml-fájlt, amely az SQL Server Expressből kinyert SQL-metaadatokat tartalmazza:

sqlmetal /server:.\sqlexpress /dbml:mymeta.dbml /database:northwind

Forráskód létrehozása .dbml metaadatfájlból:

sqlmetal /namespace:nwind /code:nwind.cs /language:csharp mymetal.dbml

Forráskód létrehozása közvetlenül az SQL-metaadatokból:

sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp

Feljegyzés

Ha a /pluralize lehetőséget használja a Northwind mintaadatbázissal, jegyezze fel az alábbi viselkedést. Amikor az SqlMetal sortípusneveket készít a táblákhoz, a táblanevek egyesével jelennek meg. Amikor tulajdonságokat hoz a DataContext táblákhoz, a táblanevek többes számban jelennek meg. Véletlenül a Northwind mintaadatbázis táblái már többes számban vannak. Ezért nem látja, hogy ez a rész működik. Bár az adatbázistáblák elnevezése gyakran előfordul egyesével, a .NET-ben is gyakori eljárás a gyűjtemények többes számának elnevezése.

Lásd még