Entity Framework > CodeFirst ile yeni database oluşturma

Merhaba Arkadaşlar,

MS Sql deki databaseler içerisinde yer alan her tablo visual studio(C#)da bir class demektir.
Peki codefirst ile ne yapacağız ?
Çok basit olarak bir WindowsFormsApplication penceresinin açılmasıyla sql üzerinde bir database ve tablolarının oluşmasını sağlayacağız.
Bunun için projemizde sınıflar(sel deki tablolar) oluşturacağız adım adım gittiğimizde ne demek istediğimiz ve ne yapmak istediğimi en sonunda göreceksiniz.

O zaman hiç vakit kaybetmeden visual studio ortamımızı açalım ve başlayalım.
İlk önce her zaman olduğu gibi boş bir “Blank Solution” açıyor ve ”New project” den uygulamamızı ve sınıflarımızı oluşturmaya başlıyoruz.
Burada ufak olarak base classımıza ortak bir özellik vererek diğer classların base classdan miras almalarınıda sağlayacağız.


Burada Category, Product, Entitybase, StokEntites diye 4 adet sınıf oluştrduk.
Category, Product, Entitybase(base class)  sınıflarımızda sqldeki tablolarımızın içeriğini(column name ve aşacakları tipleri) oluştururken  StokEntites de ise  DbContext sınıfından miras alarak database oluşturma işlemlerini yapacağız.

Bir diğer önemli alan ise  App.Config bölümüdür. Bu alanda asıl kayıt işlemlerini yapacağımız sql server bölümüne ait bilgiler vardır eğer bu alan doğru oluşturulmaz ise yaptığımız işlemler boşa gidecektir.

Burada bizim için önemli olan bölüm connectionStrings parametresinin içidir çünkü diğer alanlar zaten standarttır.

Windows Authentication bağlantısı yaptğımızda aşağıdaki gibi bir bağlantı yapmamız gerekmektedir.
connectionStrings>
<add name=”StokEntites_db” connectionString=”Server=pc\mehmet;integrated security=true;initial catalog=My_Db” providerName=”System.Data.SqlClient” />
</connectionStrings>

Eğer Sql de Windows Authentication değilde name ve password ile bağlantı yapmış olsaydık app.config deki connectionStrings parametresi aşağıdaki gibi olmalıydı.

<connectionStrings>
<add name=”StokEntites_db” connectionString=”initial catalog=My_Db; Server=pc\mehmet; username=sa; PWD=123″ providerName=”System.Data.SqlClient”/>
</connectionStrings>

Oluşturdğumuz classların içini aşağıdaki gibi dolduruyoruz.

StokEntites classımızda ise daha öncede söylediğimiz gibi  database create, table create işlemlerinin yanı sıra tableların içeriklerinide (nvarchar, desimal) belirliyoruz.

Burada önemli olan husus ise StokEntites sınıfımıza DbContext sınıfından miras alacağımız için using System.Data.Entity kütüphanesini eklememiz, bunun içinde Solution’a sağ tıklayıp Manage NuGet Packages’den Online bölümünden EntityFramework paketini indirmek.
Bu yükleme işleminden sonra kütüphane otomatik olarak gelecektir.

ve bu kadar işlemin ardından yapmamız gereken tek şey WFA loadına gelerek instance almak ve F5 tuşuna basarak projesi kaydettemek.
instance  aldıktan sonra sadece db oluştumu diye dataGridView ile ekrana başlıkların gelip gelmediğine bakacağım.

MS sql açarak görsel olarak görmek istersek;

İşte bu kadar yararlı olması dileğiyle.

Yorum bırakın