DbSet.SqlQuery(String, Object[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří nezpracovaný dotaz SQL, který vrátí entity v této sadě. Ve výchozím nastavení jsou vrácené entity sledovány kontextem; to lze změnit voláním AsNoTracking na vrácenou DbRawSqlQuery . Všimněte si, že vrácené entity jsou vždy typu pro tuto sadu a nikdy odvozeného typu. Pokud dotazovaná tabulka nebo tabulky mohou obsahovat data pro jiné typy entit, musí být dotaz SQL správně zapsán, aby se zajistilo, že se vrátí pouze entity správného typu.
Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitele umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Kontextu. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. Příspěvky WHERE Author = @p0", userSuppliedAuthor); Alternativně můžete také vytvořit DbParameter a poskytnout ho sqlQuery. To vám umožní použít pojmenované parametry v řetězci dotazu SQL. Kontextu. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. Příspěvky 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
Parametry
- sql
- String
Řetězec dotazu SQL.
- parameters
- Object[]
Parametry, které se mají použít pro řetězec dotazu SQL. Pokud se použijí výstupní parametry, nebudou jejich hodnoty k dispozici, dokud nebudou výsledky zcela přečtené. Důvodem je základní chování DbDataReader, další podrobnosti najdete v tématu http://go.microsoft.com/fwlink/?LinkID=398589 .
Návraty
Objekt DbSqlQuery , který spustí dotaz při jeho výčtu.
Platí pro
Entity Framework