Öncelikle bu yazının bir .NET 3.0+ makalesi olduğunu söylemek isterim.Bence “linq icat oldu mertlik bozuldu(LİOMB)”, Makale 1.İzin verirseniz linq ile ilgili tüm makalalerimin başına bu başlığı, “LİOMB”, koymayı istiyorum. Peki neden linq icat oldu mertlik bozuldu. Çünkü, artık veritabanı işlemleri gerçekten çocuk oyuncağına dönüştü. O kadar basit bir şekilde veritabanından verileri alıyorsunuz ve işliyorsunuz ki eski yöntemlerle uğraşmak artık zor geliyor. Tabi ki bazı arkadaşlar hız ne olacak diye söylenmeye başlayabilirler. Kimin umrunda :), en azından bu konu bu makalenin konusu değil. Hem günlük 300-500 kullanıcının ziyaret ettiği bir kaç sitede kullandım ve gerçekten bir sorun yaşamadım.İsterseniz eskiden veritabanından nasıl veri çektiğimize bir göz atalım ne dersiniz.Bir connection string yaratılır.Connection nesnesi yaratılır ve yaratılırken connection string kullanılır.Connection nesnesi ile bir command nesnesi yaratılır.Bir data adapter yaratılır ve bu data adapterda command nesnesi kullanılarak veriler çekilip bir DataTable doldurulur.İşte böyle bir zorlu yoldan geçerek veritabanından verilerimizi alırdık eskiden.Şimdi ne yapıyoruz bakalım.Bir DBML dosyası yaratıp içerisine veritabanımızı modelliyoruz.Sonrasında DBML dosyasında belirtilen DataContext nesnemizden bir örnek yaratıyoruz.Sadece tek satır kod ile istediğimiz veri kümesini veritabanından çekiyoruz.İsterseniz bir de kodlarla bu işlemleri görelim. İlk olarak eski yöntemSqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings[“ConStr”]);SqlCommand cmd = new SqlCommand(“sql cümlesi”, con);DataTable dt = new DataTable();SqlDataAdapter da = new SqlDataAdapter(cmd);da.Fill(dt);
Şimdi de yeni yöntemi görelim yani Linq to SQLOrnekDataContext db = new OrnekDataContext();var result = (from p in db.Ilansselect p);
Evet işte bu kadar basit bir şekilde tüm ilanlarımızı veritabanından çekmiş bulunuyoruz. Ne kadar basit değil mi?Gel gelelim iç içe repeater, datalist vb veri göstericilerinin kullanımına.Diyelim bir datalistiniz var ve içerisinde de bir repeater ile içiçe gösterim yapmak istiyorsunuz. Örneğin, Ana Kategori altındaki alt kategorileri göstereceksiniz.<%#Eval("KategoriAdi") %>‘><%# DataBinder.Eval(Container.DataItem, "["KategoriAdi"]")%>