Med Entity Framework Core kan du gå til den oprindelige SQL-forespørgsel, når du bruger en relationel database. Når den krævede forespørgsel ikke kan repræsenteres i LINQ, kan den rå SQL-forespørgsel bruges. Du kan også bruge rå SQL-forespørgsler, hvis brugen af LINQ-forespørgsler forårsager ineffektive SQL-forespørgsler. Den rå SQL-forespørgsel kan returnere en generisk entitetstype eller en nøglefri entitetstype i modellen.
Resumé: Udførelse af SQL-statements og lagrede procedurer med Entity Framework (EF).
Udfør SQL-sætningsforespørgsler, opdateringer og sletninger, og kald lagrede procedurer og visninger ved hjælp af følgende metoder:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw og FromSqlInterpolated bruges primært til forespørgselsoperationer ExecuteSqlRaw og ExecuteSqlInterpolated udfører tilføjelses-, opdaterings- og sletningsoperationer på databasen og returnerer antallet af berørte rækker
Slutningen er et interpoleret nøgleord, som normalt er en parametertilføjelse, sletning, ændring og kontrol, samt en måde at modstå SQL-injektionsangreb ved hjælp af strenginterpolationssyntaks. For eksempel:
Output en SQL-sætning, forespørgselsbetingelserne sendes ikke gennem splejsingen, som vist i figuren nedenfor:
Der er nogle få begrænsninger, du skal være opmærksom på, når du bruger native SQL-forespørgsler:
SQL-forespørgsler skal returnere data for alle attributter for entitetstypen. Kolonnenavnene i resultatsættet skal matche de kolonnenavne, som attributterne er knyttet til. Bemærk, at denne adfærd adskiller sig fra EF6. Attribut/kolonne-mapping-forholdet for den oprindelige SQL-forespørgsel ignoreres i EF6, og resultatsættets kolonnenavne skal matche attributnavnene. SQL-forespørgsler kan ikke indeholde tilhørende data. Dog kan du i mange tilfælde bruge Include-metoden umiddelbart efter forespørgslen for at returnere korrelerede data (se Include Associative Data).
(Slut)
|