Új hozzászólás Aktív témák
-
joysefke
veterán
EF Core vs Generikus repository/UoW + eager loading child-of-child property /.ThenInclude()/
Hogyan kell EF Core-val generikus repositoryt illetve UnitOfWorkot csinálni?

EF4-hez találtam jó tutorialt:
https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application#implement-a-generic-repository-and-a-unit-of-work-classItt a generikus repo lekérdező metódusai paraméterként elfogadnak egy stringet is, amely az eager-loaded property-k neveinek egymástól vesszővel elválasztott listáját tartalmazza. A lényegi rész itt van, ez éppen egy Get-metódus:
public virtual IEnumerable<TEntity> Get
(...,string includeProperties = "")
{ IQueryable<TEntity> query = dbSet; ... foreach (var includeProperty in includeProperties.Split (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { query = query.Include(includeProperty); }Többek között ezt szeretném EF-Core3-ra átportolni. A problémám az, hogy EF Core-ra (úgy általában) nem találtam megoldást, hogy a gyemek property-k gyermekeit (és esetleg azoknak a gyermekeit) is betöltsem a generikus lekérdező-metódusban anélkül, hogy a hívó félnek EFCore-dependenciát adnék.
Pld egy N-N táblarelációt hogyan kezeljek? EF Core-ban ugye több-több kapcsolathoz kell egy join table (EFC-ben join entitás). A MS-os pédánál maradva lesznek nekem Student, StudentCourse és Course entitásaim. Mi van ha én a Student entitáshoz nem csak a StudentCourse entitásokat, hanem a Course entitásokat is be szeretném tölteni?
Meg lehet ezt értelmesen oldani?
Workaroundként, ha csak a childokat csak első ízig töltöm be (vagy első ízig SEM), akkor ha a lekérdezéseim a kliensnek IQueryable<TEntity>-t adnak vissza, akkor a kliens kedvére LINQ-joinolhat és a JOIN/lekérdezés még mindig az SQL Serveren hajtódik végre.
Vélemény?
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Megtartotta Európában a 7500 mAh-t az Oppo
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Arc Raiders
- Vigneau interaktív lokálblogja
- Kecskemét és környéke adok-veszek-beszélgetek
- Android Autót minden mobilra!
- Linux felhasználók OFF topikja
- Projektor topic
- További aktív témák...
- Huawei P20 Pro / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- HIBÁTLAN iPhone 16 Pro 128GB Silver Titanium- 1ÉV GARANCIA -Kártyafüggetlen, MS3933, 98% Akkumulátor
- Lenovo ThinkPad T14S Gen1 Ryzen5 4650U/8GB RAM Refurbished - Garancia - Akció!
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Honor 200 Lite / 8/256GB/ Kártyafügetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


