RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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> 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)
Jenis parameter
- TResult
Parameter
- databaseFacade
- DatabaseFacade
DatabaseFacade untuk konteks.
- sql
- String
Kueri SQL mentah.
- parameters
- Object[]
Nilai yang akan ditetapkan ke parameter.
Mengembalikan
Mewakili IQueryable<T> kueri SQL mentah.
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.
Namun, jangan pernah meneruskan string yang digabungkan atau diinterpolasi ($""
) dengan nilai yang disediakan pengguna yang tidak divalidasi ke dalam metode ini. Melakukannya dapat mengekspos aplikasi Anda ke serangan injeksi SQL. Untuk menggunakan sintaks string terinterpolasi, pertimbangkan untuk menggunakan SqlQuery<TResult>(DatabaseFacade, FormattableString) untuk membuat parameter.
Lihat Menjalankan perintah SQL mentah dengan EF Core untuk informasi dan contoh selengkapnya.
Berlaku untuk
Entity Framework