/ / UnitOfWork - IRepository - STE - entity-framework, entity, repozitár-vzor

UnitOfWork - IRepository - STE - entity-framework, entity, repository-pattern

Snažím sa implementovať jednoduchú trojvrstvovú aplikáciu zostavenú takto:

1 - DAL (ide o jednotku UnitOfWork a IRepository, s entitou POCO (entita rámca T4))

2 - BLL (odkaz na DAL)

3 - UI (odkaz na BLL)

Čítal som veľa článkov, a preto som sa rozhodol implementovať klasický vzorec UnitOfWork-Repository, kde si tieto archívy nevedia o žiadnej entite sledovania:

public interface IRepository<T>
{
void Attach(T entity)
{
...
}

otázky: ak bude moja súčasť spustená v kontexte winForm, nejaká kontrola používateľského rozhrania by mohla meniť vlastnosti niektorej entity, takže ďalšia metóda volania úložiska ako Úpravy (T entita) bude zbytočná, pretože moja entita už je sledovaná kontextom interných objektov. Samozrejme, ak bežím na webovom kontexte, všetko funguje dobre, pretože webová platforma je bez štátnej príslušnosti. Jednoduchý trik by mohol byť zbavený môjho objektuContext po každej operácii BLL, ale nie som si istý, či chcem toto riešenie použiť. Preto hľadám peknejšie riešenie na zvládnutie všetkých prípadov.

Malo by IRepozitórium niečo ignorovať o STE? Mal by BLL vždy disponovať vlastným vnútorným úložiskom a / alebo jednotkou, aby simuloval prostredie bez štátnej príslušnosti?

odpovede:

1 pre odpoveď č. 1

Ak sa vyvíjate vo WinForms, prečo by steChcete simulovať platformu bez štátnej príslušnosti? Pokiaľ ide o vzory úložísk a UnitOfWork, nepozerajte sa na ne ako na niečo prísne viazané na entituFramework. Zabudnite na kontext vo vašej vrstve používateľského rozhrania. Tieto vzorce sú nezávislé od použitých ORM a sú tam, takže môžete ľahko prepínať svoje DAL a testovať svoju aplikáciu viac efektívne.