Číst v angličtině

Sdílet prostřednictvím


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);

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ředstavující IQueryable<T> dotaz SQL interpolovaného řetězce.

Poznámky

Pokud chcete tuto metodu použít s návratovým typem, který poskytovatel databáze nativně nepodporuje, použijte metodu DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) .

Vrácený kód IQueryable<T> je možné sestavit pomocí LINQ a vytvářet složitější dotazy.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, nejprve zavolejte BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction.

Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter.

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

Platí pro