SqlMetal.exe (Kod Üretme Aracı)

SqlMetal komut satırı aracı, .NET Framework 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 SDK'lar\Windows[sürüm]\bin konumundadır. Visual Studio'yu yüklemezseniz Windows SDK'sını indirerek SQLMetal dosyasını da alabilirsiniz.

Not

Visual Studio kullanan geliştiriciler de varlık sınıfları oluşturmak için Nesne İlişkisel Tasarımcısı 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:<password> Oturum açma parolasını belirtir. Varsayılan değer: Windows kimlik doğrulaması kullan.
/conn:<connection string> 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.

Microsoft SQL Server 2005, aşağıdaki koşullardan biri veya daha fazlası doğruysa 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ı dizesine ekleme ( /conn seçeneği kullanılarak) 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ı ile /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.

Ayrıca bkz.