Share via


RelationalDatabaseFacadeExtensions.SqlQuery<TResult> Metodo

Definizione

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.

sql
FormattableString

Stringa interpolata che rappresenta una query SQL con parametri.

Restituisce

IQueryable<TResult>

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 .

Si applica a