RelationalDatabaseFacadeExtensions.SqlQueryRaw<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> 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)

Paramètres de type

TResult

Paramètres

databaseFacade
DatabaseFacade

DatabaseFacade pour le contexte.

sql
String

Requête SQL brute.

parameters
Object[]

Valeurs à affecter aux paramètres.

Retours

IQueryable<TResult>

IQueryable<T> représentant la requête SQL brute.

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.

Toutefois, ne passez jamais une chaîne concaténée ou interpolée ($"") avec des valeurs fournies par l’utilisateur non validées dans cette méthode. Cela peut exposer votre application à des attaques par injection de code SQL. Pour utiliser la syntaxe de chaîne interpolée, envisagez d’utiliser SqlQuery<TResult>(DatabaseFacade, FormattableString) pour créer des paramètres.

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

S’applique à