şükela:  tümü | bugün
  • sözlük'ün garip bir şekilde illa "ado.net entity framework" başlığına yazacaksın diyerek yönlendirme verdiği framework'tur. başında ado.net yoktur. has, öz hakiki, "entity framework"tur kendisi.

    işte o malum soru arkadaşlar...

    iyi de nedir ulan bu entity framework?!
    galeyana gelmeyelim ama entity framework; ado.net kullanmış insanlar için çölde bulunmuş bir vaha, sert geçen bir kış mevsiminden sonra pencereden süzülen kuş cıvıltısıdır.

    entity framework esasen, arka planda ado.net kullanan microsoft tarafından geliştirilmiş bir araçtır. hiç orm moreme diyip kafanızı sikmeyeceğim merak etmeyin. olabildiğince basit bir şekilde anlatmaya çalışayım. şu ana kadar yeterince kafanızı siktim zaten.

    basit örnekler üzerinden gidelim.
    önceleri veritabanı(mssql) ve uygulama(visual studio projesi) arasındaki bağlantıyı ado.net kullanarak kuruyorduk. uygulama kısmında, haldır haldır sql sorgusu yazıp bunu ado.net aracılığıyla veritabanına yollardık. bu yöntemin birçok eksisi vardı.

    1- uygulama üzerinde yazdığın sorgunun çalışıp çalışmadığını, ancak veritabanına yolladığın zaman anlayabilirdin. çoğu zaman salak saçma bir noktalama işaretini unuttuğundan ya da başka bir söz dizimi hatası yüzünden çalışmazdı. kimi zaman veritabanı tablolarındaki bir kolon'u eklemeyi unutur, kimi zamansa ilgili tablonun adını yanlış girerdin. kafan karışırdı.
    2- veritabanı üzerinde değişiklik yapmak, entity framework'tekine göre çok daha fazla uğraş istiyordu.
    3- götümden atıyorum, veritabanındaki bir tabloya fazladan bir kolon girmek zorunda kaldın. müşterin yeni bir parametre daha olsun istedi. resmen çile, resmen vahşet, resmen öğk lan kusacağım şimdi. entity framework bu sorunu da aştı.
    4- diyelim ki elinde olmayan bir nedenden dolayı veritabanın patladı ve içini en baştan doldurmak zorundasın, yedeğini almamışsın. korkma, entity framework bu sorunu da aştı.

    vay be entity framework, uf be entity framework. yalarun seni. biraz da entity framework'un bu sorunları nasıl aştığı ve çalışma mantığından bahsedelim. şimdi entity framework abimizin mimarisi şu şekilde.

    veritabanı --------- context --------- classlar

    buradan yazı ile anlatmak çok zor anlamak daha zor. ama ben bir deneyeyim anlatmayı.

    nedir ulan bu context?
    abi context basit. context dediğimiz yapı, içinde class'larının listesini tutan ve tüm bu sql sorgularını senin classlarına göre üreten, veritabanıyla iletişen, gerektiğinde veritabanına veri yollayan, gerektiğinde veri çeken mükemmel kıyak, aşırı kafa bir yapı. senin diyelim ki elinde şu şekil bir class var bak.

    public class urun
    {
    public int ıd {get: set:}
    public string urunadi {get: set:}
    public double fiyat {get: set:}
    }

    bokunu çıkarmayalım. elinde böyle bir class var diyelim. bu class'tan şimdi nesne türetelim.

    urun yeniurun = new urun();
    yeniurun.urunadi = "sikeyimbuentrynedenbitmiyor";
    fiyat = 10;

    abi şimdi sen onun ıd'sini neden girmedin diyenler olacak. sakin olun, o iş context'te. entity framework'un güzelliklerinden biri de bu. "ıd" değişkenini tanıyor ve otomatik olarak artan değerler atıyor. bahsi açılmışken dönelim context'e.

    public class ornekcontext : dbcontext
    {
    public ornekcontext():base("urunconnection")
    {

    }
    }

    abi bak bu da context yapısı. "bu kendisinin context olduğunu nereden biliyor" derseniz "dbcontext" sınıfından türetildiğini siz söylüyorsunuz. ornekcontext : dbcontext ifadesi şu anlama gelir:
    "abicim bu ornekcontext var ya işte o dbcontext sınıfının özelliklerini taşıyor." bu anlama gelir. bazı yörelerde saksıya fesleğen gibi oturturum anlamı da çıkar.

    "peki base ne abi?"
    oraları çok karıştırma çocuğm, oraları yaz geç. urunconnection olarak belirtilen şey senin connectionstring'in, web.config içerisinde tanımlıyorsun. tanımlamasan bile default olarak bir değer atanıyor. panik yapma.

    özetle bu context yapısı artık, urunconnection'ın gösterdiği hedefe gidip bakacak. orada bir veritabanı var mı? yoksa oluşturacak, varsa üzerine ekleyecek.

    olum ben çok yoruldum lan, ne framework'muş amına koyim. bulaştım bir bataklığa saplandım çıkamıyorum. bir kişi de okumayacak zaten bunu, buraya kadar okuduysan da helal olsun ne diyim amk.

    ben gidiyorum, bir sıkıntın olursa özel mesaj yolla.
    öptüm.
  • seni sevmeyi ağır ödüyorum..