Entity Framework - Database First (Db First)

Entity Framework yaklaşımı olan Database First (DbFirst) tekniği, var olan veri tabanımızı projeye eklemeyi sağlar.Bu veritabanımız uzun süredir kullanılıyorsa da kullanışlı bir tekniktir. (Existing Database)

İlk önce Visual Studio'da var olan projemize Add New Item diyerek Ado.Net Entity Data Model'i ekliyoruz.

Ardından EF Designer From Database seçeneğini seçiyoruz ki bu veritabanımızdan bir entity model oluşturacak.


Connection oluşturmamız gerekiyor. Öncelikle Web.Config'te Connection String oluşturacak ayarları ve sorgulama yaparken kullanacağımız sınıfın (Bağlantı adı) ismini yazıyoruz.(NorthWindEntites)


Server Adımız, Server'a bağlantı şeklimiz(Şu anda Windows Authentication kullanıyoruz,eğer kullanıcı adı ve şifremiz olsaydı SQL Server Authentication kullanacaktık) ve veritabanımızı (NORTHWND) seçtik. Bağlantıyı test ettikten sonra yolumuza devam ettik.


Tablolarımızı ve Procedurelerimizi seçebiliriz. Bütün tabloları seçmek zorunda değiliz,ihtiyacımız olanları kullanabiliriz. Eğer hepsini seçersek performans açısından problem olabilir.

Pluralize or singularıze generated object names seçeneğini seçersek,var olan tablo adlarımızın sonunda -s takısı olacaktır. Örneğin tbl_Kitap tablosunun tbl_Kitaps olması gibi


Her şey yolunda gittiği zaman bize bu model diagramını oluşturacak. Bütün entity'leri bu alanda görebiliriz. Class, propertyler ve ilişkilerini de buradan görebiliriz. 


Veri tabanımızdan gelen tablonun, kod tarafında sınıfa dönüşmüş halini görebiliriz. Veri tabanındaki kolonlar, kod kısmında property'e dönüşmüş. Solution Explorer'da ise veri tabanından gelen tablolar .cs uzantılı sınıflara dönüşmüştür.


Veri tabanında işlemler yaparken bu sınıflardan yararlanacağız. Örnek olarak NORTHWND'e Products tablosuna bir ürün ekleyelim.

NORTHWNDEntities db = new NORTHWNDEntities();

Products p = new Products
{
    ProductName = "Bezelye", 
    Discontinued = true
};
db.Products.Add(p);
db.SaveChanges();

Products entitysine p nesnesini ekliyoruz. p nesnesinde ProductName özelliğine Bezelye ve Discontinued özelliğine true dedik. SaveChanges() metodunu kullanarak ekleme işleminin veritabanına yansımasını sağladık.Ekleme işlemimiz başarılı olmuştur.


Veri tabanı üzerinde bir değişiklik yapmak istersek, Sql Server üzerinden yapmalıyız. Diagrama sağ tıklayıp "Update Model From Database" seçersek bu değişikliklerimiz veri tabanımıza yansıyacaktır.

Yorumlar