Entity Framework Core #42 - Loading Related Data - Eager loading

Поділитися
Вставка
  • Опубліковано 21 лип 2024
  • Github : github.com/gncyyldz/EF-Core-T...
    #efcore #orm #ormnedir #entityframeworkcore #codefirst #related #eager #loading
    00:00 Giriş
    05:00 Include
    17:14 ThenInclude
    28:06 Filtered Include
    38:17 Eager Loading İçin Kritik Bir Bilgi
    44:55 AutoInclude - EF Core 6
    48:02 IgnoreAutoIncludes
    50:08 Birbirlerinden Türetilmiş Entity'ler Arasında Include
    Bu video Gençay Yıldız tarafından NGAkademi bünyesinde ücretsiz çekilmiştir.
    Gençay Yıldız'ın Bloğu
    www.gencayyildiz.com/blog/
    Güncel Duyuru ve Bildiriler İçin Sosyal Medya Hesaplarımız
    / ngakademi.sosyal
    / ngakademi
    / ngakademii
    Bana destek olmak için kanalıma üye olabilirsiniz:
    / gençay yıldız

КОМЕНТАРІ • 34

  • @HHSWare
    @HHSWare 4 дні тому +1

    Yaratmak ALLAHA mahsustur. Degerli bilgileriniz icin tesekkurler

    •  4 дні тому +1

      Şüphesiz 🌹

    • @HHSWare
      @HHSWare 4 дні тому

      Canim hocam

  • @ayetullahkarabulut434
    @ayetullahkarabulut434 4 місяці тому +1

    ramiz dayının portakalı soymadan içinden ne çıkacak bilemem dediği bizimde aynı şekilde include'yi beklediğimiz kısım geldi :D

  • @zahraamrahova789
    @zahraamrahova789 Рік тому +4

    Hocam dersleriniz o kadar güzel ki, tüm konuyu derinlemesine anladikca oturub ağlayasım var. 😢 🤭 Yine çok şey öyrəndik. Keşke bi 5-10 yıl önce tanışsaydık bu kanalla. Təşəkkürlər.
    Valla dersleriniz tüm dillerde tercuman edilmeli ki, hər kes bu kadar farkli ve güzel anlatimdan faydalanmalı. Çünki anlatimin tarzinizin tek olduğuna inanıyorum. 🙏

  • @onuraydn5330
    @onuraydn5330 Рік тому +1

    19:13 Hocam valla güldürdün yav :D, Allahta seni güldürsün

  • @hikmetfazila6299
    @hikmetfazila6299 Рік тому +3

    emeğinize sağlık hocam. teşekkürler

  • @hakanyavas5486
    @hakanyavas5486 5 місяців тому +1

    19:10 , Aynı tepkiyi verdik hocam 😅, Emeğinize sağlık teşekkür ederim.

  • @omerbesent1951
    @omerbesent1951 Рік тому +2

    Teşekkürler emeğinize sağlık tek bir yol ile gösterip değilde bütün senaryolara değinmeniz mükemmel olmuş

  • @selimyigit4158
    @selimyigit4158 Рік тому +3

    Yazılım üstadı

  • @SuskunMoruk
    @SuskunMoruk Рік тому +3

    Ağzınıza sağlık hocam

  • @onuraydn5330
    @onuraydn5330 Рік тому +1

    Hocamında dediği gibi dikkatlice bakarsanız arkadaşlar Microsoft dokümantasyonuna orda dediği şey şudur. Ana sorguya(İnitial query) eklenen ilişkisel verileri database'den getirir demektedir.
    Burda Ana sorgu nedir Örneğin;
    Context.Blogs.Tolist()'dir değil mi. Yani blogs tablosunu bize getir. yani Ana sorgudur bu sorgu aslında. işte eager loadingle ana sorguya ilişkisel veirleri ekleriz neyle tabikide include() ile
    artık ana sorguya iliştirdiğimiz bu sorgu oluşur.
    context.Blogs .Include(blog => blog.Posts).ToList(); => dedimki ana sorgu olan blog sorguma ek olarak post ilişkisel veriye "irademle" dahil et ve öyle tolist() et yani getir.

  • @oguzhan543
    @oguzhan543 Рік тому +3

    💯💯💯

  • @Kemal_ERCAN
    @Kemal_ERCAN Рік тому +3

    Elinize yüreğinize sağlık hocam.

  • @eyuphan_kaya
    @eyuphan_kaya Рік тому +2

    Mükemmelsiniz!!

  • @mehmethanifierenler3612
    @mehmethanifierenler3612 Рік тому +2

    çok teşekkür ederiz.

  • @systemfails
    @systemfails 8 місяців тому +1

    hocam yüreğinize sağlık harika

  • @huseyincuma9523
    @huseyincuma9523 Рік тому +3

    Hocam then include fonksiyonu çok kritik ve çok önemli ben bunu bilmediğimden dolayi bi ara baya gıcık etmişti bide 34:30 o kısımda anlattığıniz olay da bence çok önemli onu bilmeyen birisi kafayı yerdi öyle bir durumda

    • @ahmethakanakpinar
      @ahmethakanakpinar 2 місяці тому

      ya aynı durumu dün akşam yaşadım işten çıkmadan önce 2 3 saattir sorunu çözmeye çalışıyorum. viewComponent kullanıyorum bir çağırdığım controller da düzgün çalışıyor diğer çağırdığım controllerda tüm verileri getiriyor gerçekten hiçbiryerde sonuç bulamadım. En son gerçekten Gençay hocanın dediği aklıma geldi .AsNoTracking() i koyar koymaz düzeldi 😀

  • @aciltedarikdeposu4326
    @aciltedarikdeposu4326 Рік тому +3

    Yeni video mu gelmiş 😋

  • @Furki4_4
    @Furki4_4 Рік тому +2

    Teşekkürler hocam, çok faydalı, bol kritikli güzel bir dersti. Kaç gündür görüp vakit ayırıp izleyemiyordum :(
    Ayrıca çok güzel videolar çekiyorsunuz velakin sosyal medya hesaplarınızı takip eden az sayıda insan var. Hassaten Twitter'da son video linkini bırakırsanız sizi takip edenler retweetlerse daha fazla kişiye ulaşabilir. Yabancı kaynaklarda bile böyle teferruatlı anlatan pek kişi yok, az tanınmanıza ben içerliyorum açıkçası :/
    (Ya ben bunla uğraşmam derseniz ben uğraşırım isterseniz ^_^)

    •  Рік тому +1

      İsterim :)

  • @onurr7543
    @onurr7543 Рік тому +4

    hocam sizin visual studio nun teması çok hoş nerden yapabilirim acaba

    •  Рік тому +1

      Atom

  • @onuraydn5330
    @onuraydn5330 Рік тому

    Çok ufak bir şeye dikkat çekmek istiyorum. "AutoInclude()" kullandığımızda hocamızın bahsettiği ilişkisel veri eğer in memory'de mevcut ise gereksiz yere sürekli "include()" fonksiyonunu initial sorgunun üzerine ekleyeceğini düşünüyorum . Buda Hocamın bahsettiği mikro düzeydeki optimizasyona ters bir hareket olacaktır. Yada diğer ihtimal include etmeden önce in memery'de olup olmadığına bakıp yoksa ekliyor ise işte o zaman tam bir optimizasyon harikası olacaktır.
    Not:EF Core'da tahmini iki davranışıda denemedim her iki ihtimalden özellikle ilkinin olabileceğini düşünüyorum.Deneyen birileri aydınlatırsa memnun olurum.

    • @YusufTataroglu97
      @YusufTataroglu97 2 місяці тому

      Ben departmanlar tablosu için denedim AutoInclude() fonksiyonunu:
      modelBuilder.Entity().Navigation(d => d.Calisanlar).AutoInclude();
      Daha sonra, ilk önce çalışanları ardından da departmanları çağırdım veri tabanından:
      var calisanlar = context.Calisanlar.ToList();
      var departmanlar = context.Departmanlar.ToList();
      Sql Server Profiler'a baktığımda, Join ile departmanlar tablosuna çalışanlar tablosunu eklediğini gördüm:
      SELECT [d].[Id], [d].[DepartmanAdi], [c].[Id], [c].[DepartmanId], [c].[Maas], [c].[Name]
      FROM [Departmanlar] AS [d]
      LEFT JOIN [Calisanlar] AS [c] ON [d].[Id] = [c].[DepartmanId]
      ORDER BY [d].[Id]
      Yani çalışanlar tablosunun verilerini, ram'de olsa bile join ile birleştirip getiriyor. O yüzden çıkarımım şudur ki AutoInclude() fonksiyonunu kullanıyorsak gereken noktalarda IgnoreAutoIncludes() fonksiyonunu kullanmazsak ilgili tablodaki verileri birleştirip getirmeye devam ediyor EF Core.

  • @sadaharu_tr
    @sadaharu_tr Рік тому +2

    Bir önceki videoya attığım yorum eve varinca kendini imha edecektir.

  • @erdalkomurcu2606
    @erdalkomurcu2606 Рік тому

    Hocam video için teşekkürler burada bir soru aklıma takıldı izninizle sormak istiyorum. Include kullandığımız zaman SQL sorgusunda join oluşturuluyor fakat include kullanmadan select içerisinde navigation property çağırırsak örneğin şu şekilde:
    context.Employees.Select(e => new {e.Region.Name})
    yine join oluşuyor ve sıkıntısız verileri getiriyor. Açıkçası bahsettiğim 2 durum arasındaki farkı kavrayamadım. ChangeTracker ile alakalı bir durum mu bulunuyor burada? Böyle bir ikilem arasında kaldığımız vakit hangisini tercih etmeliyiz?

  • @lvvl-em5ne
    @lvvl-em5ne Рік тому

    Hocam merhaba bir sorum olacaktı. Navigation Property'leri kullanmak istersek ama DB seviyesinde ForeignKey tanımlamasını engelleme gibi bir özellik mevcut mu Ef Core'da? Yani context.Employees.Include(x => x.Region) kullanmak istiyorum ancak bu aralarındaki relation sadece entity seviyesinde olsun, db'de FK tanımlamasın. Bu mümkün mü?

  • @arda6734
    @arda6734 Рік тому +2

    ahaha bazen bende böyle oluyorum 19:15

  • @arda6734
    @arda6734 Рік тому +2

    Gençay hocam bir sorum olacak umarım görüsünüz. Ef core da include ettiğim bir verinin sonrasında bellekte tutulduğu için bir daha kullanımına gerek olmadığı söylemişsiniz. GarbageCollector'un bu verileri silmesi durumu olmaz mı runtime'da.

    •  Рік тому +2

      Verilerimiz referans edildiği için silinmeyecektir.

  • @hakanhakan6595
    @hakanhakan6595 Рік тому

    Hocam eğer izniniz olursa bu seride not aldığım bilgiler ile medium yazısı yazmak istiyorum

    •  Рік тому

      Kaynak göstermenizi rica ediyorum.
      İyi çalışmalar.