telah ditolak, mewujudkan kesukaran ketika melaksanakan pertanyaan SQL mentah yang memerlukan pemetaan data dan ranking. Walaupun dbData.Database.SqlQuery<somemodel>
adalah pilihan, ia tidak mempunyai keupayaan pemetaan peringkat. dbData.Product.FromSql("SQL SCRIPT")
versi dan penyelesaian teras EF:
EF Core 8 dan kemudian: Kaedah kini mengembalikan nilai skalar dan menyokong jenis sewenang -wenangnya, menjadikan pendekatan yang lebih tua tidak berkesan. SqlQuery
EF Core 3.0 dan kemudian: Jenis entiti tanpa kunci (dahulunya dikenali sebagai jenis pertanyaan) menyediakan penyelesaian. Anotasi kelas anda dengan dan gunakan [Keyless]
atau FromSqlRaw
untuk melaksanakan pertanyaan anda dan memetakan hasilnya. FromSql
EF CORE 2.1 dan kemudian: Jenis pertanyaan menawarkan pendekatan yang berdaya maju. Di dalam anda, tentukan harta DbContext
(di mana DbQuery<T>
mewakili jenis untuk nilai lajur pertanyaan SQL anda). Kemudian, gunakan kaedah T
seperti yang anda lakukan dengan FromSql
. DbSet<T>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pertanyaan SQL Mentah dengan Kedudukan dalam Teras Rangka Kerja Entiti tanpa Menggunakan DbSet?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!