|
|
Zveřejněno 19.02.2021 14:00:14
|
|
|
|

S Entity Framework Core můžete při použití relační databáze přejít na původní SQL dotaz. Pokud požadovaný dotaz nelze reprezentovat v LINQ, lze použít surový SQL dotaz. Surové SQL dotazy můžete použít i tehdy, pokud LINQ dotazy způsobují neefektivní SQL dotazy. Surový SQL dotaz může v modelu vrátit generický typ entity nebo typ entity bez klíče.
Shrnutí: Provádění SQL příkazů a uložených procedur pomocí Entity Framework (EF).
Provádějte dotazy, aktualizace a mazání SQL příkazů a vyvolávejte uložené procedury a pohledy pomocí následujících metod:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw a FromSqlInterpolated se používají hlavně pro operace dotazů ExecuteSqlRaw a ExecuteSqlInterpolated provádějí operace přidávání, aktualizace a mazání databáze a vracejí počet ovlivněných řádků
Konec je interpolované klíčové slovo, které obvykle znamená přidání parametrů, jejich odstranění, úpravu a kontrolu a způsob, jak odolat útokům SQL injection pomocí syntaxe interpolace řetězců. Například:
Výstup SQL příkazu, podmínky dotazu nejsou předávány přes splicing, jak je znázorněno na obrázku níže:
Při používání nativních SQL dotazů je třeba si dát na pozor několik omezení:
SQL dotazy musí vracet data pro všechny atributy daného typu entity. Názvy sloupců ve výsledné množině musí odpovídat názvům sloupců, na které jsou atributy přiřazeny. Všimněte si, že toto chování se liší od EF6. Vztah mapování atributů a sloupců původního SQL dotazu je v EF6 ignorován a názvy sloupců výsledné sady musí odpovídat jménům atributů. SQL dotazy nemohou obsahovat související data. V mnoha případech však můžete použít metodu Include ihned po dotazu k vrácení korelovaných dat (viz Include Associative Data).
(Konec)
|
Předchozí:EF Core Series 4 se dívá na generované SQL příkazyDalší:Fiddler nahrazuje odkazy, žádosti přesměrovávají
|