SqlMetal.exe (Alat Pembuatan Kode)
Alat baris perintah SqlMetal menghasilkan kode dan pemetaan untuk LINQ untuk SQL komponen .NET Framework. Dengan menerapkan opsi yang muncul nanti dalam topik ini, Anda dapat menginstruksikan SqlMetal untuk melakukan beberapa tindakan berbeda yang mencakup hal berikut:
Dari database, hasilkan kode sumber dan atribut pemetaan atau file pemetaan.
Dari database, buat file bahasa markup database perantara (.dbml) untuk penyesuaian.
Dari file .dbml, hasilkan atribut kode dan pemetaan atau file pemetaan.
Alat ini secara otomatis diinstal dengan Visual Studio 2019 dan versi yang lebih lama. Secara default, file terletak di %ProgramFiles%\Microsoft SDKs\Windows[version]\bin. Jika Anda tidak menginstal Visual Studio, Anda juga bisa mendapatkan file SQLMetal dengan mengunduh Windows SDK.
Catatan
Pengembang yang menggunakan Visual Studio juga dapat menggunakan Object Relational Designer untuk menghasilkan kelas entitas. Pendekatan baris perintah diskalakan dengan baik untuk database besar. Karena SqlMetal adalah alat baris perintah, Anda dapat menggunakannya dalam proses build.
Untuk menjalankan alat, gunakan Prompt Perintah Pengembang Visual Studio atau PowerShell Pengembang Visual Studio. Pada perintah, masukkan perintah berikut:
sqlmetal [options] [<input file>]
Opsi
Untuk melihat daftar opsi terbaru, ketik sqlmetal /?
pada prompt perintah dari lokasi yang dipasang.
Opsi Koneksi
Opsi | Deskripsi |
---|---|
/server: <nama> | Menentukan nama server database. |
/database: <nama> | Menentukan katalog database di server. |
/user: <name> | Menentukan id pengguna masuk. Nilai default: Gunakan autentikasi Windows. |
/password: <password> | Menentukan kata sandi masuk. Nilai default: Gunakan autentikasi Windows. |
/conn: <string koneksi> | Menentukan string koneksi database. Tidak dapat digunakan dengan opsi /server, /database, /user, atau /password. Jangan sertakan nama file dalam string koneksi. Sebagai gantinya, tambahkan nama file ke baris perintah sebagai file input. Misalnya, baris berikut menentukan "c:\northwnd.mdf" sebagai file input: sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf". |
/timeout: <detik> | Menentukan nilai waktu habis saat SqlMetal mengakses database. Nilai default: 0 (yaitu, tidak ada batas waktu). |
Opsi ekstraksi
Opsi | Deskripsi |
---|---|
/views | Mengekstrak tampilan database. |
/functions | Mengekstrak fungsi database. |
/sprocs | Mengekstrak prosedur tersimpan. |
Opsi Keluaran
Opsi | Deskripsi |
---|---|
/dbml [:file] | Mengirim output sebagai .dbml. Tidak dapat digunakan dengan opsi /map. |
/code [:file] | Mengirim output sebagai kode sumber. Tidak dapat digunakan dengan opsi /dbml. |
/map [:file] | Menghasilkan file pemetaan XML alih-alih atribut. Tidak dapat digunakan dengan opsi /dbml. |
Lain-Lain
Opsi | Deskripsi |
---|---|
/language: <bahasa> | Menentukan bahasa kode sumber. <Bahasa komputer> yang valid: vb, csharp. Nilai default: Berasal dari ekstensi pada nama file kode. |
/namespace: <name> | Menentukan namespace layanan kode yang dihasilkan. Nilai default: tidak ada namespace layanan. |
/context: <type> | Menentukan nama kelas konteks data. Nilai default: Berasal dari nama database. |
/entitybase: <ketik> | Menentukan kelas dasar kelas entitas dalam kode yang dihasilkan. Nilai default: Entitas tidak memiliki kelas dasar. |
/pluralize | Secara otomatis membuat pluralisasi atau mensingkularisasi nama kelas dan anggota. Opsi ini hanya tersedia dalam versi bahasa Inggris AS. |
/serialisasi: <opsi> | Menghasilkan kelas yang dapat diserialisasikan. <Opsi> yang valid: Tidak ada, Searah. Nilai default: None. Untuk informasi selengkapnya, lihat Serialisasi. |
File input
Opsi | Deskripsi |
---|---|
<file input> | Menentukan file .mdf SQL Server Express, file .sdf SQL Server Compact 3.5, atau file perantara .dbml. |
Keterangan
Fungsionalitas SqlMetal sebenarnya melibatkan dua langkah:
Mengekstrak metadata database ke dalam file .dbml.
Menghasilkan file output kode.
Dengan menggunakan opsi baris perintah yang sesuai, Anda dapat menghasilkan kode sumber Visual Basic atau C#, atau Anda dapat menghasilkan file pemetaan XML.
Untuk mengekstrak metadata dari file .mdf, Anda harus menentukan nama file .mdf setelah semua opsi lainnya.
Jika tidak ada /server yang ditentukan, localhost/sqlexpress diasumsikan.
Microsoft SQL Server 2005 memberikan pengecualian jika satu atau beberapa kondisi berikut ini benar:
SqlMetal mencoba mengekstrak prosedur tersimpan yang memanggil dirinya sendiri.
Tingkat bersarang dari prosedur, fungsi, atau tampilan tersimpan melebihi 32.
SqlMetal menangkap pengecualian ini dan melaporkannya sebagai peringatan.
Untuk menentukan nama file input, tambahkan nama ke baris perintah sebagai file input. Menyertakan nama file dalam string koneksi (menggunakan opsi /conn ) tidak didukung.
Contoh
Buat file .dbml yang menyertakan metadata SQL yang diekstrak:
sqlmetal /server:myserver /database:northwind /dbml:mymeta.dbml
Hasilkan file .dbml yang menyertakan metadata SQL yang diekstrak dari file .mdf dengan menggunakan SQL Server Express:
sqlmetal /dbml:mymeta.dbml mydbfile.mdf
Buat file .dbml yang menyertakan metadata SQL yang diekstrak dari SQL Server Express:
sqlmetal /server:.\sqlexpress /dbml:mymeta.dbml /database:northwind
Hasilkan kode sumber dari file metadata .dbml:
sqlmetal /namespace:nwind /code:nwind.cs /language:csharp mymetal.dbml
Hasilkan kode sumber dari metadata SQL secara langsung:
sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp
Catatan
Saat Anda menggunakan opsi /pluralize dengan database sampel Northwind, perhatikan perilaku berikut. Saat SqlMetal membuat nama jenis baris untuk tabel, nama tabel bersifat tunggal. Ketika membuat properti DataContext untuk tabel, nama tabel bersifat jamak. Kebetulan, tabel dalam database sampel Northwind sudah jamak. Oleh karena itu, Anda tidak melihat bagian itu berfungsi. Meskipun merupakan praktik umum untuk memberi nama tabel database tunggal, ini juga merupakan praktik umum dalam .NET untuk memberi nama koleksi jamak.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk