共用方式為


RelationalDatabaseFacadeExtensions.SqlQuery<TResult> 方法

定義

根據原始 SQL 查詢建立 LINQ 查詢,此查詢會傳回資料庫提供者原生支援的純量類型結果集。

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)

類型參數

TResult

參數

databaseFacade
DatabaseFacade

DatabaseFacade內容的 。

sql
FormattableString

內插字串,表示具有參數的 SQL 查詢。

傳回

IQueryable<TResult>

IQueryable<T> 表示插入字串 SQL 查詢。

備註

若要使用這個方法搭配資料庫提供者原生不支援的傳回型別,請使用 DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) 方法。

傳回 IQueryable<T> 的 可以透過使用 LINQ 撰寫,以建置更複雜的查詢。

請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel)UseTransaction

如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。

如需詳細資訊和範例,請參閱 使用 EF Core 執行原始 SQL 命令

適用於