Compartir a través de


DbSet<TEntity>.SqlQuery(String, Object[]) Método

Definición

Crea una consulta SQL sin formato que devolverá entidades de este conjunto. De forma predeterminada, el contexto realiza un seguimiento de las entidades devueltas; Esto se puede cambiar llamando a AsNoTracking en el DbSqlQuery<TEntity> devuelto. Tenga en cuenta que las entidades devueltas siempre son del tipo de este conjunto y nunca de un tipo derivado. Si la tabla o tablas consultadas pueden contener datos para otros tipos de entidad, la consulta SQL se debe escribir correctamente para asegurarse de que solo se devuelven entidades del tipo correcto.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. Contexto. Blogs.SqlQuery("SELECT * FROM dbo. Publicaciones WHERE Author = @p0", userSuppliedAuthor); Como alternativa, también puede construir un DbParameter y proporcionarlo a SqlQuery. Esto le permite usar parámetros con nombre en la cadena de consulta SQL. Contexto. Blogs.SqlQuery("SELECT * FROM dbo. Publicaciones WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

Parámetros

sql
String

Cadena de consulta SQL.

parameters
Object[]

Los parámetros que se van a aplicar a la cadena de consulta SQL. Si se usan parámetros de salida, sus valores no estarán disponibles hasta que los resultados se hayan leído por completo. Esto se debe al comportamiento subyacente de DbDataReader, consulte http://go.microsoft.com/fwlink/?LinkID=398589 para obtener más detalles.

Devoluciones

Objeto DbSqlQuery<TEntity> que ejecutará la consulta cuando se enumera.

Se aplica a