Partager via


DbSet.SqlQuery(String, Object[]) Méthode

Définition

Crée une requête SQL brute qui retournera des entités dans ce jeu. Par défaut, les entités retournées sont suivies par le contexte ; cela peut être modifié en appelant AsNoTracking sur le DbRawSqlQuery retourné. Notez que les entités retournées sont toujours du type pour cet ensemble et jamais d’un type dérivé. Si la table ou les tables interrogées peuvent contenir des données pour d'autres types d'entités, la requête SQL doit être écrite convenablement pour garantir que seules les entités du type correct sont retournées.

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. Contexte. Set(typeof(Blog)). SqlQuery(« SELECT * FROM dbo. Billets WHERE Author = @p0« , userSuppliedAuthor); Vous pouvez également construire un DbParameter et le fournir à SqlQuery. Cela vous permet d’utiliser des paramètres nommés dans la chaîne de requête SQL. Contexte. Set(typeof(Blog)). SqlQuery(« SELECT * FROM dbo. Posts WHERE Author = @author« , new SqlParameter(« @author », userSuppliedAuthor));

public virtual System.Data.Entity.Infrastructure.DbSqlQuery SqlQuery (string sql, params object[] parameters);
abstract member SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
override this.SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
Public Overridable Function SqlQuery (sql As String, ParamArray parameters As Object()) As DbSqlQuery

Paramètres

sql
String

Chaîne de requête SQL.

parameters
Object[]

Paramètres à appliquer à la chaîne de requête SQL. Si des paramètres de sortie sont utilisés, leurs valeurs ne seront pas disponibles tant que les résultats n’auront pas été entièrement lus. Cela est dû au comportement sous-jacent de DbDataReader, consultez http://go.microsoft.com/fwlink/?LinkID=398589 pour plus d’informations.

Retours

Objet DbSqlQuery qui exécute la requête lorsqu’elle est énumérée.

S’applique à