Share via


RelationalDatabaseFacadeExtensions.SqlQuery<TResult> Metode

Definisi

Membuat kueri LINQ berdasarkan kueri SQL mentah, yang mengembalikan kumpulan hasil jenis skalar yang didukung secara asli oleh penyedia database.

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)

Jenis parameter

TResult

Parameter

databaseFacade
DatabaseFacade

DatabaseFacade untuk konteks.

sql
FormattableString

String terinterpolasi yang mewakili kueri SQL dengan parameter.

Mengembalikan

IQueryable<TResult>

Yang IQueryable<T> mewakili kueri SQL string terinterpolasi.

Keterangan

Untuk menggunakan metode ini dengan jenis pengembalian yang tidak didukung secara asli oleh penyedia database, gunakan metode .DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>)

yang dikembalikan IQueryable<T> dapat disusun menggunakan LINQ untuk membangun kueri yang lebih kompleks.

Perhatikan bahwa metode ini tidak memulai transaksi. Untuk menggunakan metode ini dengan transaksi, pertama-tama panggil BeginTransaction(DatabaseFacade, IsolationLevel) atau UseTransaction.

Seperti halnya API apa pun yang menerima SQL, penting untuk membuat parameter input pengguna apa pun untuk melindungi dari serangan injeksi SQL. Anda dapat menyertakan tempat penampung parameter dalam string kueri SQL lalu menyediakan nilai parameter sebagai argumen tambahan. Nilai parameter apa pun yang Anda berikan akan secara otomatis dikonversi ke DbParameter.

Lihat Menjalankan perintah SQL mentah dengan EF Core untuk informasi dan contoh selengkapnya.

Berlaku untuk