|
|
Pubblicato su 19/02/2021 14:00:14
|
|
|
|

Con Entity Framework Core, puoi passare alla query SQL originale quando usi un database relazionale. Quando la query richiesta non può essere rappresentata in LINQ, si può utilizzare la query SQL grezzo. Puoi anche usare query SQL grezze se l'uso di query LINQ causa query SQL inefficienti. La query SQL grezzo può restituire un tipo di entità generico o un tipo di entità senza chiave nel modello.
Ricapitolo: esecuzione di istruzioni SQL e stored procedure con Entity Framework (EF).
Eseguire query di istruzioni SQL, aggiornamenti e cancelli, e invocare stored procedure e viste utilizzando i seguenti metodi:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw e FromSqlInterpolated sono principalmente utilizzati per operazioni di query ExecuteSqlRaw ed ExecuteSqlInterpolated eseguono operazioni di aggiunta, aggiornamento ed eliminazione sul database, restituendo il numero di righe interessate
La fine è una parola chiave interpolata, che di solito è un'aggiunta, cancellazione, modifica e verifica di parametri, e un modo per resistere agli attacchi di iniezione SQL usando la sintassi di interpolazione delle stringhe. Per esempio:
Invia un'istruzione SQL, le condizioni di query non vengono passate attraverso lo splicing, come mostrato nella figura sottostante:
Ci sono alcune limitazioni da tenere a mente quando si utilizzano query SQL native:
Le query SQL devono restituire dati per tutti gli attributi del tipo di entità. I nomi delle colonne nell'insieme dei risultati devono corrispondere ai nomi delle colonne a cui sono mappati gli attributi. Si noti che questo comportamento è diverso da EF6. La relazione di mappatura attributo/colonna della query SQL originale viene ignorata in EF6, e i nomi delle colonne dell'insieme dei risultati devono corrispondere ai nomi degli attributi. Le query SQL non possono contenere dati associati. Tuttavia, in molti casi, si può utilizzare il metodo Include immediatamente dopo la query per restituire dati correlati (vedi Include Associative Data).
(Fine)
|
Precedente:EF Core Series 4 esamina le istruzioni SQL generateProssimo:Fiddler sostituisce i link, richiede reindirizzamenti
|