Compartilhar via


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

Definição

Cria uma consulta SQL bruta que retornará entidades nesse conjunto. Por padrão, as entidades retornadas são controladas pelo contexto; isso pode ser alterado chamando AsNoTracking no DbSqlQuery<TEntity> retornado. Observe que as entidades retornadas são sempre do tipo para esse conjunto e nunca de um tipo derivado. Se a tabela ou tabelas consultadas puderem conter dados para outros tipos de entidade, a consulta SQL deverá ser gravada adequadamente para garantir que apenas entidades do tipo correto sejam retornadas.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada do usuário para proteger contra um ataque de injeção de SQL. Você pode incluir os espaços reservados para parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter. Contexto. Blogs.SqlQuery("SELECT * FROM dbo. Postagens WHERE Author = @p0", userSuppliedAuthor); Como alternativa, você também pode construir um DbParameter e fornecê-lo ao SqlQuery. Isso permite usar parâmetros nomeados na cadeia de caracteres de consulta SQL. Contexto. Blogs.SqlQuery("SELECT * FROM dbo. Postagens 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

A cadeia de caracteres de consulta SQL.

parameters
Object[]

Os parâmetros a serem aplicados à cadeia de caracteres de consulta SQL. Se os parâmetros de saída forem usados, seus valores não estarão disponíveis até que os resultados tenham sido lidos completamente. Isso ocorre devido ao comportamento subjacente de DbDataReader, consulte http://go.microsoft.com/fwlink/?LinkID=398589 para obter mais detalhes.

Retornos

Um DbSqlQuery<TEntity> objeto que executará a consulta quando ela for enumerada.

Aplica-se a