SqlMetal.exe (Kod Üretme Aracı)
SqlMetal komut satırı aracı, .NET Framework'ün LINQ to SQL bileşeni için kod ve eşleme oluşturur. Bu konunun ilerisinde görünen seçenekleri uygulayarak, SqlMetal'den aşağıdakileri içeren çeşitli farklı eylemler gerçekleştirmesini isteyebilirsiniz:
Bir veritabanından, kaynak kodu ve eşleme öznitelikleri veya bir eşleme dosyası oluşturmak.
Bir veritabanından, dosya özelleştirme için bir ara veritabanı işaretleme dili (.dbml) dosyası oluşturmak.
Bir .dbml dosyasından, kod veya eşleme öznitelikleri veya bir eşleme dosyası üretmek.
Bu araç Visual Studio 2019 ve önceki sürümlerle otomatik olarak yüklenir. Varsayılan olarak, dosya %ProgramFiles%\Microsoft SDKs\Windows[version]\bin konumunda bulunur. Visual Studio'yu yüklemezseniz Windows SDK'sını indirerek SQLMetal dosyasını da alabilirsiniz.
Not
Visual Studio kullanan geliştiriciler varlık sınıfları oluşturmak için Nesne İlişkisel Tasarımcısı de kullanabilir. Komut satırı yaklaşımı, büyük veritabanları için uygun düşmektedir. SqlMetal bir komut satırı aracı olduğundan, bir oluşturma işleminde kullanabilirsiniz.
Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i kullanın. Komut istemine aşağıdaki komutu girin:
sqlmetal [options] [<input file>]
Seçenekler
En güncel seçenek listesini görüntülemek için, yüklü konumdan bir komut istemine yazın sqlmetal /?
.
Bağlantı Seçenekleri
Seçenek | Açıklama |
---|---|
/server: <name> | Veritabanı sunucusu adını belirtir. |
/database: <name> | Sunucuda veritabanı kataloğu belirtir. |
/user: <name> | Oturum açma kullanıcı kimliğini belirtir. Varsayılan değer: Windows kimlik doğrulamayı kullanın. |
/password: <parola> | Oturum açma parolasını belirtir. Varsayılan değer: Windows kimlik doğrulaması kullan. |
/conn: <bağlantı dizesi> | Veritabanı bağlantısı dizesi belirtir. /server, /database, /user veya /password seçenekleriyle kullanılamaz. Dosya adını bağlantı dizesine eklemeyin. Bunun yerine, dosya adını giriş dosyası olarak komut satırına ekleyin. Örneğin, aşağıdaki satır giriş dosyası olarak "c:\northwnd.mdf" belirtir: sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf". |
/timeout: <seconds> | SqlMetal veritabanına eriştiğinde, zaman aşımı değerini belirtir. Varsayılan değer: 0 (yani, zaman sınırı yok). |
Ayıklama seçenekleri
Seçenek | Açıklama |
---|---|
/Görünümler | Veritabanı görünümlerini ayıklar. |
/Işlev | Veritabanı işlevlerini ayıklar. |
/sprocs | Saklı yordamları ayıklar. |
Çıkış seçenekleri
Seçenek | Açıklama |
---|---|
/dbml [:file] | Çıkışı .dbml olarak gönderir. /map seçeneğiyle kullanılamaz. |
/code [:file] | Çıkışı kaynak kodu olarak gönderir. /dbml seçeneğiyle kullanılamaz. |
/map [:file] | Öznitelikler yerine bir XML eşleme dosyası oluşturur. /dbml seçeneğiyle kullanılamaz. |
Çeşitli
Seçenek | Açıklama |
---|---|
/language: <language> | Kaynak kod dilini belirtir. Geçerli <dil>: vb, csharp. Varsayılan değer: Kod dosyası adındaki uzantıdan türetilir. |
/namespace: <name> | Üretilen kodun ad alanını belirtir. Varsayılan değer: ad alanı yok. |
/context: <type> | Veri bağlamı sınıfının adını belirtir. Varsayılan değer: Veritabanı adından türetilir. |
/entitybase: <type> | Üretilen kodda varlık sınıflarının temel sınıfını belirtir. Varsayılan değer: Varlıkların temel sınıfı yoktur. |
/pluralize | Sınıf ve üye adlarını otomatik olarak çoğullaştırır veya tekilleştirir. Bu seçenek yalnızca ABD İngilizcesi sürümünde kullanılabilir. |
/serialization: <option> | Seri hale getirilebilir sınıflar oluşturur. Geçerli <seçenek>: Yok, Tek yönlü. Varsayılan değer: Hiçbiri. Daha fazla bilgi için bkz . Serileştirme. |
Giriş Dosyası
Seçenek | Açıklama |
---|---|
<giriş dosyası> | SQL Server Express .mdf dosyasını, SQL Server Compact 3.5 .sdf dosyasını veya .dbml ara dosyasını belirtir. |
Açıklamalar
SqlMetal işlevi aslında iki adımdan oluşur:
Veritabanını meta verilerini bir .dbml dosyasına ayıklama.
Kod çıktı dosyası oluşturma.
Uygun komut satırı seçeneklerini kullanarak Visual Basic veya C# kaynak kodu veya XML eşleme dosyası oluşturabilirsiniz.
Meta verileri bir .mdf dosyasından ayıklamak için, .mdf dosyası adını tüm diğer seçeneklerden sonra belirtmeniz gerekir.
/server belirtilmezse localhost/sqlexpress varsayılır.
Aşağıdaki koşullardan biri veya daha fazlası doğruysa Microsoft SQL Server 2005 bir özel durum oluşturur:
SqlMetal, kendi kendini çağıran bir saklı yordam ayıklamaya çalışır.
Bir saklı yordam, işlev veya görünümün iç içe geçme düzeyini 32'yi aşıyor.
SqlMetal, bu özel durumu yakalar ve bir uyarı olarak bildirir.
Bir giriş dosyası adı belirtmek için, adı komut satırına giriş dosyası olarak ekleyin. dosya adını bağlantı dizesi (/conn seçeneği kullanılarak) dahil etme desteklenmez.
Örnekler
Ayıklanan SQL meta verileri içeren bir .dbml dosyası oluşturun:
sqlmetal /server:myserver /database:northwind /dbml:mymeta.dbml
SQL Server Express kullanarak bir .mdf dosyasından ayıklanan SQL meta verilerini içeren bir .dbml dosyası oluşturun:
sqlmetal /dbml:mymeta.dbml mydbfile.mdf
SQL Server Express'ten ayıklanan SQL meta verilerini içeren bir .dbml dosyası oluşturun:
sqlmetal /server:.\sqlexpress /dbml:mymeta.dbml /database:northwind
Dbml meta veri dosyasından kaynak kodu oluşturun:
sqlmetal /namespace:nwind /code:nwind.cs /language:csharp mymetal.dbml
Doğrudan SQL meta verilerinden kaynak kodu oluşturun:
sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp
Not
Northwind örnek veritabanıyla /pluralize seçeneğini kullandığınızda aşağıdaki davranışa dikkat edin. SqlMetal tablolar için satır türünde adlar oluşturduğunda, tablo adları tekildir. Tablolar için özellikler yaptığında DataContext , tablo adları çoğuldur. Tesadüfen, Northwind örnek veritabanındaki tablolar zaten çoğuldur. Bu nedenle, bu bölümün çalıştığını görmezsiniz. Veritabanı tablolarını tekil olarak adlandırmak ortak uygulama olsa da, toplulukları çoğul olarak adlandırmak da .NET'te ortak bir uygulamadır.