SQL Metal Kullanımları

Yazar: Cenk Özdemir
Kategori: SQL Server
Eklenme Tarihi: 30.12.2010 03:18:37



SqlMetal.exe, Windows SDK içerisinde gelen araçlardan birisi olup, LINQ to SQL ORM aracına ilişkin kod ve modeli oluşturmak için kullanılır. Fakat çoğu .NET programcısı, LINQ to SQL’de entity sınıflarının oluşturulmasında çoğunlukla, projeye eklenen LINQ to SQL Classes'ın dizayn ekranını kullanılıyor olduğundan, SqlMetal aracı biraz gözardı edilmiştir.

SqlMetal.exe, Windows SDK içerisinde gelen araçlardan birisi olup, LINQ to SQL ORM aracına ilişkin kod ve modeli oluşturmak için kullanılır. Fakat çoğu .NET programcısı, LINQ to SQL’de entity sınıflarının oluşturulmasında çoğunlukla, projeye eklenen LINQ to SQL Classes'ın dizayn ekranını kullanılıyor olduğundan, SqlMetal aracı biraz gözardı edilmiştir.

SqlMetal.exe, Visual Studio Command Prompt ile direkt olarak kullanılabilir ve varsayılan olarak aşağıdaki adreste yer alır:
”C:\Program Files\Microsoft SDKs\Windows\v.6.0A\bin\SqlMetal.exe”

  • Veritabanındaki tüm tablolar için Entity sınıfları oluşturmak

sqlmetal /server:localhost /database:Chinook /code:ChinookDataContext.cs

Böylece çok sayıda tabloya sahip bir veritabanı için entity sınıflarının oluşturulması çok daha kolay hale gelmektedir.

  • Entity sınıflarını WCF ile servis edilmeye uygun şekilde oluşturmak

sqlmetal /server:localhost /database:Chinook /serialization:Unidirectional /code:ChinookDataContext.cs

Aynı konfigürasyon, LINQ to SQL Classes dizayn ekranında boş bir yere tıkladıktan sonra açılan Properties listesinde (Property listesi, DataContext nesnesinin property’lerini listelemeli) , Serialization Mode:Unidirectional bildirilerek de yapılabilmektedir.

scr1

  • Entity sınıfları ortak bir tipten kalıtmak ve böylelikle tüm sınıflara ortak üyeler kazandırmak

sqlmetal /server:localhost /database:Chinook /code:ChinookDataContext.cs /entitybase:MyBaseClass

/entitybase niteliğiyle tüm entity sınıfları ortak bir sınıftan kalıtılabilir. Böylece, tüm entity sınfılarına ortak bir takım üyeler de base class aracılığıyla eklenebilir.

  • Veritabanında bulunan tüm view,function ve stored procedure nesnelerini modele dahil etmek

sqlmetal /server:localhost /database:Chinook /code:ChinookDataContext.cs /views /functions /sprocs

Tablolar ile birlikte function, stored procedure ve view nesneleri için de gerekli kodları ilave etmektedir.

  • Tablo isimlerinin çoğul hale getirimesi

sqlmetal /server:localhost /database:Chinook /code:ChinookDataContext.cs /pluralize

Normalde SqlMetal’ın çoğullaştırmadığı property isimlerinin otomatik olarak çoğul hale getirilmesi için /pluralize parametresi eklenmelidir.

  • SqlMetal’ı tekrarlı kullanımlarda daha kullanışlı hale getirmek için batch dosyası oluşturmak

Bir text dosyası açarak içine aşağıdakileri yazdıktan sonra .bat uzantısıyla kaydedilir:

“C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SqlMetal.exe” /server:localhost /database:Chinook /code:%~dp0ChinookDataContext.cs

Böylelikle batch dosyamız her çalışmasında, SqlMetal.exe’yi çalıştıracak ve entity sınıflarımız güncellenecektir.

  • SqlMetal aracını bir arayüz ile kullanmak

SqlMetal.exe, komut satırı yerine bir windows arayüzüyle de kullanılabilir. Bu iş için, http://sourceforge.net/projects/sqlmetalbuilder/ adresinden indirilebilen SqlMetal Builder uygulamasını yüklemenizi tavsiye ederim. Aşağıda ekran görüntüsü bulunan uygulama, özetle, SqlMetal’ı execute ederken verilmesi gereken komut satırı parametrelerini bir windows arayüzünden alarak, geliştiriciye kolaylık sağlamaktadır.

screenshot


Cenk Özdemir

Programcılığa C programlama dili ile başlayan Cenk ÖZDEMİR, Visual Basic, PHP, Java gibi farklı diller ile de uygulamalar geliştirmiştir. Uzun süredir .NET Platformunda çalışmalarını sürdüren ÖZDEMİR, özellikle C# programlama dili, Object Oriented Programlama ve .NET Framework mimarisi üzerinde uzmanlaşmıştır.  Kendi geliştirdiği eğitim içeriğiyle Türkiye'nin önde gelen kurumlarından birinde yazılım eğitimleri vermekte olup, çalışmalarına tüm hızıyla devam etmektedir.

Blog: http://www.cenkozdemir.com
Bu makaleye ilk yorum yapan siz olun.

Yorumunuz