none
linq to sql ? RRS feed

  • Genel Tartışma

  • Arkadaşlar biliyoruz ki Microsoft LINQ'e artık geliştirmeyeceğini açıklamıştı zamanında ve yoluna Entity Framework ile devam edeceğini belirtmişti. Ne tekim öyle de oldu.

    Benim sormak istediğim Entity Framework için kullandığımız sorgulama Syntax'ı LINQ'e çok benzemekle beraber daha farklı bir yazım biçimi ve method isimlendirmelerine sahip.

    Örneğin EF için bir silme işlemi bu şekilde yapılıyorken

    Db _db = new Db();
    Urun _p = (from u in _db.Urun where u.Id == 7 select u).SingleOrDefault();
    _db.DeleteObject(_p);
    _db.SaveChanges();

    LINQ ile şu şekilde yapılıyor

    DataContext _db = new DataContext();             
    Pro _p = _db.products.First(k => k.id == 7);
    _db.products.DeleteOnSubmit(_p);
    _db.SubmitChanges();
    

    Tabi bu sadece bir örnek lambda syntaxıda var işin içinde.  Ama bilenler bilir diğer sorgulama kombinasyonlarınada bakıldığı zaman tamamen method isimleri yazım şekilleri birbirinden farklı.

    Asıl sorum ise şu arkadaşlar LINQ zaten bitmiş ben Entity Framework öğrenmeye yeni başlayan birisi olarak doğrudan Entitiy Framework lemi başlamalıyım yoksa LINQ'ede bakmam gerekirmi. Yani doğrudan EF sorgulama biçimleriyle işe girişmek ve LINQ'yu tamamen es geçmek bir kayıp mıdır sizce?


    face your fears live your dreams

    30 Temmuz 2012 Pazartesi 23:25

Tüm Yanıtlar

  • Ben de sizin gibiydim ve EF ile başladım ve linq yu bilmediğim için zorlandım. Bence linq bilmemek tamamen bir kayıp, ve oturup baştan linq çalıştım. Ne kadar farklı gibi gözükseler de aynı şeyler ve EF için linq bilmek gerek bence.

    Mustafa Torun

    31 Temmuz 2012 Salı 06:04
  • Merhaba,

    Öncelikle belirtmeliyim ki ortada bir anlam karmaşası var. Sizin karşılaştırmanız gereken LINQ to SQL ile Entity Framework olmalı LINQ değil. LINQ dile tümleşik sorgulama anlamına gelir. LINQ ile koleksiyonlar, listeler vs. üzerinde T-SQL tadında sorgulamalar yapıp işinizi çok daha kolaylaştırabilirsiniz.

    LINQ'in pek çok türevi mevcut. LINQ to XML, LINQ to SQL, LINQ to Objects hatta PLINQ (Parallel LINQ). ORM Tool olarak LINQ to SQL oldukça başarılı bana göre. Orta ölçekli bir projede rahatlıkla kullanılabilir. Fakat büyük ölçekli enterprise uygulamalarda Entity Framework'ü tercih etmelisiniz. Çünkü işler ilerledikçe bir yerden sonra LINQ to SQL gerekli esneklikleri sağlamayabiliyor.

    Sonuç olarak LINQ'i öğrenmelisin hem LINQ to SQL hem Entity Framework için hem de diğer işlemler için. ORM Tool içinse EF öğren derim çok güçlü bir altyapısı var özellikle Code First yaklaşımı ile beraber.

    31 Temmuz 2012 Salı 12:56
  • Mustafa linq to sql bilmediğin için zorlandığın noktalar nelerdi. Sonuçta EF ile başladığım zaman EF için gerekli sorgulama işlemlerimi EF üzerinde kendi sorgulama biçimi ile yapabiliyor olacağım ve amacıma hizmet etmiş olacak. Ekstra olarak linq to sql öğrenmenin EF için sağlayacağı avantajları nelerdir.

    face your fears live your dreams

    31 Temmuz 2012 Salı 13:46
  • AAKoken kavram kargaşası yok benimde kasdettiğim "linq to sql".  Linq seninde belirttiğin gibi geniş bir yelpazede bize faydası olan bir teknoloji.

    Benim kıyaslamasını yaptığım Linq to sql ile EF. Şimdi Mustafaya yazdığım gibi sadece EF için neden linq to sql öğrenmeliyim. EF ile zaten gerekli sorgulamalarımı yapabiliyor iken linq to sql öğrenmenin EF için gerekliliği nelerdir.


    face your fears live your dreams

    31 Temmuz 2012 Salı 13:49
  • Aslında ben AAKoken in bahsettiği kavram kargaşasındaydım.linq nun ne olduğunu tam bilmiyordum. Neyin ne olduğunu anlayınca hayat daha kolay.

    Bazı durumlarda Linq to EF yetersiz kalıyor (dinamik sqller daha çok). bu durumlarda direk EF yi atlayarak veritabanına gitmek gerekiyor, linq to sql buralarda işe yarıyor.


    Mustafa Torun

    31 Temmuz 2012 Salı 13:53
  • LINQ zaten bitmiş ben Entity Framework öğrenmeye yeni başlayan birisi olarak doğrudan Entitiy Framework lemi başlamalıyım yoksa LINQ'ede bakmam gerekirmi. Yani doğrudan EF sorgulama biçimleriyle işe girişmek ve LINQ'yu tamamen es geçmek bir kayıp mıdır sizce?


    face your fears live your dreams

          Açıkcası yukarıda hiç LINQ to SQL kelimesi görmeyince doğal olarak öyle anladım ve sadece belirtmek istedim. Her neyse LINQ To SQL öğrenmenin EF için hiç bir gerekliliği yok ki:S Sana tek kazancı ORM tool pratiği ve LINQ to SQL ile kullandığın LINQ sorgularında hız kazandırır, tecrübe edinmiş olursun. Onun dışında hiç bir bağlantısı yok. LINQ to SQL ile EF'deki CRUD işlemlerin yapıları nedeniyle farklılık göstermesi de normal.
    31 Temmuz 2012 Salı 13:58
  • Başlığı "linq to sql ?" olarak atınca içeriğe pek dikkat etmemişim haklısın. Benim az çok iki teknoloji hakkında ve orm konusunda bilgim var ama derinlemesine bir şekilde giriş yapmak için ve zamandan tasarruf edebilmek adına belli bir sınırlama yapmak istiyorum.

    Ama yorumlarınızdan yola çıkarak bir şekilde linq tol sql'i pek de es geçmemem gerektiği kanısına varıyorum. Yani linq to sql i halledersem EF ü çok daha rahat bir şekilde kavrayabilirim sanırım.

    http://www.dr.com.tr/Kitap/Linq/Cihan-Yakar/Egitim-Basvuru/Bilgisayar/urunno=0000000369044

    bu kitap nasıldır sizce inceleme fırsatınız oldumu hiç. linq to sql için böyle bir kitap almaya gerek varmı yoksa netteki kaynaklarla yetinmek ve sonrasında EF e geçmek mantıklı olurmu. projelerimde linq kullanan birisi değilim sadece mvc için EF öğrenmek istiyorum ama linq to sql ilede karşılaşınca kafamda soru işaretleri oluştu. Zaman benim için kısıtlı mvc için sonuç odaklı bir yol izlemeliyim ne tavsiye edersiniz.


    face your fears live your dreams

    31 Temmuz 2012 Salı 14:26
  • Bir süredir bende ORM ve dolayısıyla Linq ile ilgilenmeye başladım. Öncelikle EF üzerine yoğunlaşsamda bu konulara yeni başlayan birinin öncelikle Linq to SQL ile deneme sürüşü yapmasını hatta küçük bir proje üzerinde bu sistemi kullanıp tecrübe kazanmasını tavsiye ederim.

    Doğrusu ben bu süreci bir zaman kaybı değil bir tecrübe birikimi olarak görüyorum. Ancak eğer bu konularada bir birikim varsa EF tercih edilebilir. Ancak Visual Studio 2012 ile Linq to SQL desteği devam ettiğine göre bence küçük ölçekli projelerde Linq to SQL ile daha sade ve kolay tasarımlar yapılabilir gibi geliyor bana, bilmem katılır mısınız?


    http://www.zafercelenk.net / http://www.ddili.org

    13 Ekim 2012 Cumartesi 06:25