|
|
Publisert på 19.02.2021 14:00:14
|
|
|
|

Med Entity Framework Core kan du gå over til den opprinnelige SQL-spørringen når du bruker en relasjonsdatabase. Når den nødvendige spørringen ikke kan representeres i LINQ, kan den rå SQL-spørringen brukes. Du kan også bruke rå SQL-spørringer hvis bruk av LINQ-spørringer fører til ineffektive SQL-spørringer. Den rå SQL-spørringen kan returnere en generisk entitetstype eller en nøkkelløs entitetstype i modellen.
Oppsummering: Kjører SQL-setninger og lagrede prosedyrer med Entity Framework (EF).
Utfør SQL-setningsspørringer, oppdateringer og slettinger, og kall lagrede prosedyrer og visninger ved hjelp av følgende metoder:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw og FromSqlInterpolated brukes hovedsakelig til spørringsoperasjoner ExecuteSqlRaw og ExecuteSqlInterpolated utfører add-, oppdaterings- og sletteoperasjoner på databasen, og returnerer antall berørte rader
Slutten er et interpolert nøkkelord, som vanligvis er parametertillegg, sletting, modifisering og kontroll, og en måte å motstå SQL-injeksjonsangrep ved hjelp av strenginterpolasjonssyntaks. For eksempel:
Skriv ut en SQL-setning, spørringsbetingelsene går ikke gjennom skjøting, som vist i figuren nedenfor:
Det er noen begrensninger du bør være oppmerksom på når du bruker native SQL-spørringer:
SQL-spørringer må returnere data for alle attributter til entitetstypen. Kolonnenavnene i resultatsettet må samsvare med kolonnenavnene som attributtene er kartlagt til. Merk at denne oppførselen er forskjellig fra EF6. Attributt/kolonne-mappingsforholdet til den opprinnelige SQL-spørringen ignoreres i EF6, og kolonnenavnene i resultatsettet må samsvare med attributtnavnene. SQL-spørringer kan ikke inneholde tilhørende data. I mange tilfeller kan du imidlertid bruke Include-metoden umiddelbart etter spørringen for å returnere korrelerte data (se Include Associative Data).
(Slutt)
|
Foregående:EF Core Series 4 ser på de genererte SQL-setningeneNeste:Fiddler erstatter lenker, ber om videresending omdirigeringer
|