Soran
linq to sql ?

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
- Değiştirilmiş Tür Ali Rıza İnceoğlu 31 Temmuz 2012 Salı 12:58
Tüm Yanıtlar
-
-
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.
-
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
-
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
-
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
-
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
-
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
-
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?