2 Şubat 2019 Cumartesi

Code First Ornek

Code First Örnek:Bir önceki yazımda Code First u açıklamıştım.Buradan ulaşabilirsiniz.Şimdi de bir örnek vererek dahada pekişmesini sağlamaya çalışacağım.
Projeye sağ tıklayıp Add, New Item dan  Code First ekleyelim. Adımlar aşağıdaki gibidir.


Örnekte 2 Class olacak bunlar Kitap ve Yazar Sınıflarıdır.
ilk olarak projeye sağ tıklayıp Kitap isimli classı oluşturalım. Bu oluşturacağımız Kitap classı kodlama bittikten sonra Datebase tarafında bir tablo olarak oluşacaktır. Örneğe göre her kitabın bir yazarı olacağından Yazar isimli bir class olacak ve Kitap classı ile Yazar classı arasında ilişki kurmamız gerekecek. Bu sebeple classın içerisine bir de Yazar tipinde bir property ekleyelim.Kitap Classı aşağıdaki gibidir:


public class Kitap
{
   public int KitapId { get; set; }
   public int YazarId { get; set; }
   public string Adı { get; set; }

   public string BasımYılı { get; set; }

   public virtual Yazar Yazar { get; set; }
}  

Daha sonrasında Yazar isimli class oluşturalım. Bir yazarın birden fazla kitabı olabileceğinden Yazar ile Kitap arasında bire çok ilişki var diyebiliriz. Bu sebeple Yazar classına  Kitaplar isimli propertyi ICollection olarak tanımlamalıyız.
Yazar Classı aşağıdaki gibidir:


public class Yazar
{
   public int YazarId{ get;set; }
   public string Adi{ get;set; }
   public string Soyad{ get; set; }
   public virtual Icollection Kitaplar{ get; set; }
} 
    
Daha sonra oluşturduğumuz entitylerin DbSet lerini oluştururuz. Bu Dbsetlerin her biri tablolar ile Get/Add/Remove/Update/ gibi işlemleri üzerinden yapacağımız yapılardır.Diğer önemli nokta da classın constructor ile üst classa göndereceğimiz string("name=EFFirst"). Bu string bizim connectionName imiz olacaktır.
DbSet leri de yazdıktan sonra  Formun Load kısmında tablolara herhangi bir eklem yapmıyorsanız Initialize  true yapmalısınız.Tabloya herhangi bir şey eklemediğim için aşığadaki kodaları Formun load kısmına ekledim.

private void Form1_Load(object sender, EventArgs e)
{
    using (var ctx = new Data.EFFirst())
   {
     ctx.Database.Initialize(true);
   }
}

projeyi artık çalıştırabiliriz.Sonucunda da Databasete tablolar aşağıdaki gibi oluşmuştur.




31 Ocak 2019 Perşembe

Code First

Entity Framework Nedir ?

Entity Framework, .Net platformunda ORM(Object Relational Mapping) araçlarından biridir.ORM ise veritabanı ile nesneye yönelik programlama (OOP) arasındaki ilişkiyi kuran teknolojidir. Entity Framework nesneler ve ilişkisel veritabanının tabloları ve sütunları arasındaki eşleşmeyi basitleştiren bir araç türüdür. Entity Framework un en iyi yararlarından biri fazla kodlardan kaçınarak işi basitleştirmektir.
Entity Framework te Entity modeli oluşturabilmek için 3 farklı yöntem sunmaktadır. Bunlar:
1-)Code First
2-)Database First
3-)Model First 

1-)Database First Nedir?

Var olan bir database i uygulamaya uyarlama işine Database First yaklaşımı denir.Database First , yeni bir entity model oluşturmak için, adından da anlaşılacağı üzere önceliği veritabanı olarak görür. Yani modeli, hazırda bulunan bir veritabanından oluşturur. Eğer uzun zamandır kullanılan bir veri tabanı üzerinde çalışacak ve bu veritabanı için bir model oluşturacaksanız bu yaklaşımı tercih etmelisiniz. Bu yaklaşımda çalışma yöntemi olarak daha çok server tarafında işlemler yapılır ve değişiklikler modele aktarılır.

2-)Model First Nedir?

Bu yaklaşım, sıfırdan bir veritabanı oluşturarak projeye başlanması gereken durumlar için ideal olabilmektedir. Kod yazmadan ya da serverda fiziksel database ile ilgilenmeden, tamamen entity model üzerinden veritabanı oluşturmak için kullanılan yaklaşımdır. Entity user interfacesi üzerinden modellediğiniz verilerinizi generate ettiğinizde hem database tarafında hem de kod tarafında otomatik olarak oluşurlar.

3-)Code First Nedir ?

Veritabanı ile Programlama dili arasında bağ kuran bir tekniktir. Projenizde veritabanı işlemlerinizi mümkün mertebe Visual Studio tarafında kod yazarak gerçekleştirmenizi sağlayan bir yaklaşımdır. Bu yaklaşım sayesinde veritabanı arayüzü ile yazılımcı arasında ilişki minimize edilmektedir.
Code First yapısında programlama dilindeki “class” yapıları veritabanındaki “tablo” yapılarına, “property” yapıları ise veritabanındaki “kolon” yapılarına denk gelmektedir.
Ayrıca Attribute’lar sayesinde veritabanı yapılarına Validationlar uygulanabilmekte ve kolonlara belirli şartlar veyahut kısıtlamalar koyulabilmektedir.
En önemlisi ise projenizdeki modelin oto kontrolünü elinizde hissetmenize ve tam hakimiyetle istediğiniz gibi kullanmanıza olanak tanıyor.
İlk Kod Yaklaşımı

Code First u bir örnekte açıklayacağım.EF yi kullanmak için Ef yi Referance vermemiz gerekiyor. Öncelikle bir proje başlatalım ve projeye sağ tıklayıp Manage NuGet Packages ta projemize EF(Entity Fremework) yi referance verelim.Açılan pencereden Browse kısmında EntityFramework u aratıp bulalım ve Install deyip kuralım.Kurulum aşamaları aşağıdaki resimlerde gösterilmiştir.



Kurulduktan sonra projenizin References kısmında aşağıdaki gibi gözükecektir.

Böylece projemize Entity Framework 'u referans verdik.Code First örneğine buradan ulaşabilirsiniz.