Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Alexios

    veterán

    válasz joysefke #9708 üzenetére

    Áhh jogos, a linket nem nyitottam meg, de akkor ugyan arról beszélünk igazából, mint szimpatikus megoldás :)

  • leslie23

    tag

    válasz joysefke #9708 üzenetére

    Igen, az mindenképpen cél, hogy a presentation layernek ne legyen EF Core dependenciája és ahogy Alexios is írta, ha éppen arra van szükség, gond nélkül cserélhető legyen a DataAccess layer akár Dapperre, sima ADO.NET-re, bármire.
    Mivel saját hobbiprojektről van szó, így erre soha nem fog sor kerülni, de most valahol pont az elmélet érdekelne, hogy hogyan lehet és kell ezt jól megcsinálni. Olvastam a hivatkozott MS-os leírást is egyébként.

    „Ami nekem sokkal szimpatikusabb...”

    Huhh, lehet, hogy valami nagyon hasonlóról beszélünk egyébként, próbálom értelmezni. Neten található projektek alapján most úgy legoztam össze, hogy a presentation layer egy IUnitOfWork interfészt lát a DataAccessből, és a Program.cs-ben bele van rakva egy példánya a UnitOfWork-nek DI konténerbe. IUnitOfWork szintén interfészeket tartalmaz mint property-k (IPersonRepository, IProductRepository, stb.).
    A generikus Repo-nak is van egy generikus interfésze (IRepository<T>), ebben nincs pl. Update metódus, csak Add, Remove, GetAll, GetFirst.
    IProductRepository örököl IRepository<Product> interfésztől, illetve tartalmazhat specifikus metódusokat, mondjuk épp egy ilyet hogy: void Update(Product product).
    A konkrét implementációk pedig pl.:
    ProductRepository : Repository<Product>, IProductRepository,
    vagyis öröklik a generikus repo metódusait, és implementálják az entitás-specifikus metódusokat, annak számít most mondjuk egy Update is.

    Ha jól értelmezem az általad írottakat, valami hasonlóra gondolsz, csak az interfészeket szerencsésebb lenne kiszervezni egy külön assembly-be, ami amúgy logikusan is hangzik. :)
    Mondjuk ha jó a sejtésem, az EF Core-t teljesen nem lehet „száműzni” a presentation layerből, mert a DI miatt a kell a builder.Services.AddDbContext... :F

    Automapper témában sajnos csak másra tudok mutogatni, jómagam még nem kísérleteztem vele, így nem tudom mennyire validak az itt leírt ellenérvek...

Új hozzászólás Aktív témák