|
|
Zverejnené 19. 2. 2021 14:00:14
|
|
|
|

S Entity Framework Core môžete pri použití relačnej databázy prejsť na pôvodný SQL dotaz. Keď požadovaný dotaz nie je možné reprezentovať v LINQ, môže sa použiť surový SQL dotaz. Surové SQL dotazy môžete použiť aj vtedy, ak používanie LINQ dotazov spôsobuje neefektívne SQL dotazy. Surový SQL dotaz môže vrátiť generický typ entity alebo typ entity bez kľúča v modeli.
Zhrnutie: Vykonávanie SQL príkazov a uložených procedúr pomocou Entity Framework (EF).
Vykonávať dotazy na SQL príkazy, aktualizácie a mazania, a vyvolávanie uložených procedúr a pohľadov pomocou nasledujúcich metód:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw a FromSqlInterpolated sa používajú hlavne na operácie s dotazmi ExecuteSqlRaw a ExecuteSqlInterpolated vykonávajú operácie pridávania, aktualizácie a odstraňovania databázy a vracajú počet ovplyvnených riadkov
Koniec je interpolované kľúčové slovo, ktoré zvyčajne slúži na pridanie, vymazanie, úpravu a kontrolu parametrov, a spôsob, ako odolať SQL injekčným útokom pomocou syntaxe interpolácie reťazcov. Napríklad:
Výstup SQL príkazu, podmienky dotazu sa neprenášajú cez splicing, ako je znázornené na obrázku nižšie:
Pri používaní natívnych SQL dotazov je potrebné mať na pamäti niekoľko obmedzení:
SQL dotazy musia vracať údaje pre všetky atribúty daného typu entity. Názvy stĺpcov v množine výsledkov musia zodpovedať názvom stĺpcov, na ktoré sú atribúty mapované. Všimnite si, že toto správanie sa líši od EF6. Vzťah mapovania atribútov/stĺpcov pôvodného SQL dotazu je v EF6 ignorovaný a názvy stĺpcov výsledkovej sady musia zodpovedať názvom atribútov. SQL dotazy nemôžu obsahovať súvisiace údaje. Avšak v mnohých prípadoch môžete použiť metódu Include hneď po dotaze na vrátenie korelovaných dát (pozri Include Associative Data).
(Koniec)
|
Predchádzajúci:EF Core Series 4 skúma generované SQL príkazyBudúci:Fiddler nahrádza odkazy, požiadavky presmerujú
|