RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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<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 .