RelationalDatabaseFacadeExtensions.SqlQuery<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> SqlQuery<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);
static member SqlQuery : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * FormattableString -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQuery(Of TResult) (databaseFacade As DatabaseFacade, sql As FormattableString) As IQueryable(Of TResult)
Parametri di tipo
- TResult
Parametri
- databaseFacade
- DatabaseFacade
Oggetto DatabaseFacade per il contesto.
Stringa interpolata che rappresenta una query SQL con parametri.
Restituisce
Oggetto IQueryable<T> che rappresenta la query SQL di stringa interpolata.
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.
Per altre informazioni ed esempi, vedere Esecuzione di comandi SQL non elaborati con EF Core .