Jazyk

RelationalDatabaseFacadeExtensions.SqlQuery<TResult> Metoda

Definice

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> SqlQuery<TResult>(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);
static member SqlQuery : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * FormattableString -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQuery(Of TResult) (databaseFacade As DatabaseFacade, sql As FormattableString) As IQueryable(Of TResult)

Parametry typu

TResult

Parametry

databaseFacade
DatabaseFacade

Kontext DatabaseFacade .

sql
FormattableString

Interpolovaný řetězec představující dotaz SQL s parametry.

Návraty

IQueryable<TResult>

Představuje IQueryable<T> interpolovaný řetězcový 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.

Další informace a příklady najdete v tématu Spouštění nezpracovaných příkazů SQL s EF Core .

Platí pro