Compartilhar via


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

Definição

Cria uma consulta SQL bruta que retornará entidades neste conjunto. Por padrão, as entidades retornadas são controladas pelo contexto; isso pode ser alterado chamando AsNoTracking no DbRawSqlQuery retornado. Observe que as entidades retornadas são sempre do tipo para esse conjunto e nunca de um tipo derivado. Se a tabela ou as 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 de usuário para proteger contra um ataque de injeção de SQL. Você pode incluir detentores de 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. Set(typeof(Blog)). 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. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. Postagens 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

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 objeto que executará a consulta quando ela for enumerada.

Aplica-se a