EntityFramework a cache rubrika: Programování: .Net

5 pilif
položil/-a 19.4.2018

Zdravím ve spolek,
jak řešíte u EF (6.2) nějakou cache?

Jako modelový příklad:

  • mám seznam zákazníků, který v cyklu procházím a pro každého počítám nějakou hodnotu
  • pro výpočet hodnoty potřebuji přistupovat ke 3-5 různým pomocným tabulkám v databázi
  • některé tabulky jsou o velikosti jednotek záznamů a některé zase tisíců
  • při průchodech v cyklu se často opakují shodné dotazy na pomocné tabulky
  • některé dotazy na pomocné tabulky provádíme přes entity model a u některých používáme z důvodu výkonu RAW SQL dotazy přes SqlQuery

Uvažoval jsem nad nějakými proxy třídami nad repozitáři, ale zde jsem ještě nepromyslel použití v rámci IoC (Windsor Castle).

Momentálně to ještě řešíme tak, že ve třídě aplikační logiky, kde probíhá celý algoritmus výpočtu si jednou načtené záznamy ukládáme do listu a při opakovaném dotazu je použijeme.

Díky.

odkaz
4 KamilZ
odpověděl/-a 20.4.2018

Jsou okamžiky, kdy se vyplatí napsat komplexní SQL dotaz namísto sady jednoduchých a následných cyklů s výpočty atd. (přes SQL jdou dělat opravdu divy), případně použít proceduru v databázi a na aplikáč/klienta vracet už jen výsledek. Výkon bude myslím zcela někde jinde, obzvláště pokud se několik cyklů přepíše do rozumného SQL.

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.