Partager via


RelationalDatabaseFacadeExtensions.SqlQuery<TResult> Méthode

Définition

Crée une requête LINQ basée sur une requête SQL brute, qui retourne un jeu de résultats d’un type scalaire pris en charge en mode natif par le fournisseur de base de données.

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)

Paramètres de type

TResult

Paramètres

databaseFacade
DatabaseFacade

DatabaseFacade pour le contexte.

sql
FormattableString

Chaîne interpolée représentant une requête SQL avec des paramètres.

Retours

IQueryable<TResult>

IQueryable<T> représentant la requête SQL de chaîne interpolée.

Remarques

Pour utiliser cette méthode avec un type de retour qui n’est pas pris en charge en mode natif par le fournisseur de base de données, utilisez la DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) méthode .

Le retourné IQueryable<T> peut être composé à l’aide de LINQ pour générer des requêtes plus complexes.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter.

Pour plus d’informations et d’exemples, consultez Exécution de commandes SQL brutes avec EF Core .

S’applique à