|
|
Julkaistu 19.2.2021 14.00.14
|
|
|
|

Entity Framework Coren avulla voit siirtyä alkuperäiseen SQL-kyselyyn, kun käytät relaatiotietokantaa. Kun vaadittua kyselyä ei voida esittää LINQ:ssa, raakaa SQL-kyselyä voidaan käyttää. Voit myös käyttää raaka-SQL-kyselyitä, jos LINQ-kyselyt aiheuttavat tehottomia SQL-kyselyitä. Raaka SQL-kysely voi palauttaa mallissa yleisen entiteettityypin tai avaimettoman entiteettityypin.
Yhteenveto: SQL-lauseiden ja tallennettujen proseduurien suorittaminen Entity Frameworkilla (EF).
Suorita SQL-lausekyselyitä, päivityksiä ja poistoja sekä kutsu tallennettuja proseduureja ja näkymiä seuraavilla menetelmillä:
- FromSqlRaw
- FromSqlInterpoloitu
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw ja FromSqlInterpolated ovat pääasiassa käytössä kyselyoperaatioissa ExecuteSqlRaw ja ExecuteSqlInterpolated suorittavat lisäys-, päivitys- ja poistotoimintoja tietokannassa ja palauttavat kyseisen rivien määrän
Loppu on interpoloitu avainsana, joka on yleensä parametrien lisääminen, poisto, muokkaus ja tarkistus sekä tapa vastustaa SQL-injektiohyökkäyksiä merkkijonojen interpolointisyntaksin avulla. Esimerkiksi:
Kun tulostetaan SQL-lause, kyselyehdot eivät siirry splicingin kautta, kuten alla olevassa kuvassa on esitetty:
Natiivien SQL-kyselyiden käytössä on muutamia rajoituksia, jotka kannattaa huomioida:
SQL-kyselyiden on palautettava tiedot kaikista entiteettityypin attribuuteista. Tulosjoukon sarakkeiden nimien on vastattava niitä sarakkeiden nimiä, joihin attribuutit on yhdistetty. Huomaa, että tämä käyttäytyminen eroaa EF6:sta. Alkuperäisen SQL-kyselyn attribuutti/sarakke-kartoitussuhde jätetään EF6:ssa huomiotta, ja tulosjoukon sarakkeiden nimien on vastattava attribuuttien nimiä. SQL-kyselyt eivät voi sisältää siihen liittyvää dataa. Monissa tapauksissa voit kuitenkin käyttää Include-menetelmää heti kyselyn jälkeen palauttaaksesi korreloitua dataa (katso Include Associative Data).
(Loppu)
|
Edellinen:EF Core Series 4 tarkastelee generoituja SQL-lauseitaSeuraava:Fiddler korvaa linkit, pyytää uudelleenohjausta
|