RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> 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ří dotaz LINQ na základě nezpracovaného dotazu SQL, který vrátí sadu výsledků skalárního typu nativně podporovaného poskytovatelem databáze.
public static System.Linq.IQueryable<TResult> SqlQueryRaw<TResult>(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
public static System.Linq.IQueryable<TResult> SqlQueryRaw<TResult>(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object?[] parameters);
static member SqlQueryRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQueryRaw(Of TResult) (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As IQueryable(Of TResult)
Parametry typu
- TResult
Parametry
- databaseFacade
- DatabaseFacade
Kontext DatabaseFacade .
- sql
- String
Nezpracovaný dotaz SQL.
- parameters
- Object[]
Hodnoty, které se mají přiřadit k parametrům.
Návraty
Představuje IQueryable<T> nezpracovaný dotaz SQL.
Poznámky
Chcete-li použít tuto metodu s návratovým typem, který není nativně podporován poskytovatelem databáze, použijte metodu DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) .
IQueryable<T> Vrácená funkce se dá sestavit pomocí LINQ k sestavení složitějších dotazů.
Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction.
Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny zadané hodnoty parametrů se automaticky převedou na DbParameter.
Nikdy však nepředávejte zřetězený nebo interpolovaný řetězec ($"") s neověřenými hodnotami zadanými uživatelem do této metody. Tím se může vaše aplikace vystavit útokům prostřednictvím injektáže SQL. Pokud chcete použít interpolovanou syntaxi řetězce, zvažte použití SqlQuery<TResult>(DatabaseFacade, FormattableString) k vytvoření parametrů.
Další informace a příklady najdete v tématu Spouštění nezpracovaných příkazů SQL s EF Core .