RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea una query LINQ basata su una query SQL non elaborata, che restituisce un set di risultati di un tipo scalare supportato in modo nativo dal provider di database.
public static System.Linq.IQueryable<TResult> SqlQueryRaw<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member SqlQueryRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQueryRaw(Of TResult) (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As IQueryable(Of TResult)
Parametri di tipo
- TResult
Parametri
- databaseFacade
- DatabaseFacade
Oggetto DatabaseFacade per il contesto.
- sql
- String
Query SQL non elaborata.
- parameters
- Object[]
Valori da assegnare ai parametri.
Restituisce
Oggetto IQueryable<T> che rappresenta la query SQL non elaborata.
Commenti
Per usare questo metodo con un tipo restituito non supportato in modo nativo dal provider di database, usare il DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) metodo .
L'oggetto restituito IQueryable<T> può essere composto tramite LINQ per compilare query più complesse.
Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input dell'utente per proteggersi da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri forniti verranno convertiti automaticamente in dbParameter.
Tuttavia, non passare mai una stringa concatenata o interpolata ($""
) con valori non convalidati forniti dall'utente in questo metodo. In questo modo l'applicazione può esporre l'applicazione agli attacchi SQL injection. Per usare la sintassi di stringa interpolata, è consigliabile usare SqlQuery<TResult>(DatabaseFacade, FormattableString) per creare parametri.
Per altre informazioni ed esempi, vedere Esecuzione di comandi SQL non elaborati con EF Core .