Hirdetés
Új hozzászólás Aktív témák
-
joysefke
veterán
válasz
bandi0000
#9945
üzenetére
Ahogy már írták a DbContext már önmagában is repository és unit of work.
Innen kezdve ha becsomagolod egy generikus repository + UoW absztrakcióba, akkor azt nem a funkcionalitás miatt teszed, hanem hogy elfedd a EntityFramework-öt, tehát hogy a repositoryt használó kód ne tudja magát az adott EfCore verzióhoz/funkciókhoz láncolni.
akkor van valami köztes réteg még a felület és az adatbázis közt, ami pl olyan feladatot látna el, hogy mentéskor ha ügyfelet és autót akarunk menteni, akkor a felületen kb csak annyi hívás legyen, hogy: SaveClientWithCar(Client client, Car car) és ez a köztes réteg lezongorázza a mentéseket ID generálással és beállítással?
Igen, a repository egy low level absztrakció az adathozzáférési rétegben.
Ha van egy featuröd (amit mondjuk egy UI page valósít meg) akkor annak a featurenek lesz konkrét igénye hogy adatokat tudjon olvasni a DB-ből (amit megjelenít a user számára) illetve a user által módosított adatokat perzisztálni tudja DB-be.
Az adatok formájára nézve a feature nyilván konkrét kívánalmakat fogalmaz meg. (e.g. mutasd az összes usert akinek van autója az autója típusával és évjáratával együtt) illetve meghatározza, hogy melyik adatmorzsa módosítható és melyik nem a feature kontextusában.Itt érdemes egy a featuret kiszolgáló, a repositorynál magasabb absztrakciós szinten lévő, data access service osztályt definiálni ami a repositoryra támaszkodva keríti elő a featuret hajtó kód számára az adatokat illetve menti el a változásokat. A repository-ból visszaadott adatokat arra a formára tudja adaptálni amilyen formában a featurnek szüksége van rá.
egy alternatíva lehet, hogy hagyod a repository patternt és ezeket az adott featuret kiszolgáló data access service osztályokat közvetlenül az Ef DbContext-re építed (DI-t használva nyilván) aztán a featuret hajtó logika használja ezeket (ezek interfészét).
Ú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!
- Asus Prime MR120 argb
- iPhone 16 pro, 128GB eladó
- Acer 15.6",FullHD,core i3 8145U(4x3,9Ghz)MX230 2/4GB DDR5VGA,8-20GB RAM,SSD,szép állapot,Win.11
- Új Gamer PC - Ryzen 7 5800X / RX 9060 XT 16GB / B550M WIFI / 32GB RAM / 1TB M.2 NVMe SSD / 650W
- 2év Garancia,Lenovo Slim 3,i5 12450H(12x4,4Ghz)15,6"FullHD IPS,Magyar vil.bill,8-16GBDDR5 RAM,512SSD
- 0perces! Samsung Galaxy Book5 Pro 360 2in1 Core Ultra 7 256V 16GB 2TB 16" WQXGA+ AMOLED TOUCH 1évgar
- Lenovo ThinkPad T14 Gen1 Intel i5-10310U Refurbished - Garancia - Akció!
- BESZÁMÍTÁS! MSI B650 R7 8700F 32GB DDR5 512GB SSD RX 6800 16GB Zalman Z1 Plus Cooler Master 750W
- 179 - 180 - 189 - 190 - Lenovo LOQ (15IRX9) - Intel Core i7-13650HX, RTX 4060
- Jackson elektromos gitár
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


