Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan pertanyaan SQL mentah dengan jenis data tersuai dalam teras kerangka entiti?

Bagaimana untuk melaksanakan pertanyaan SQL mentah dengan jenis data tersuai dalam teras kerangka entiti?

Barbara Streisand
Barbara Streisandasal
2025-01-27 01:16:09649semak imbas

How to Execute Raw SQL Queries with Custom Data Types in Entity Framework Core?

Melaksanakan pertanyaan SQL mentah dengan jenis data tersuai dalam Rangka Kerja Entiti

Rangka Kerja Entiti Evolusi Core telah mengubah bagaimana pertanyaan SQL mentah ditangani, terutamanya mengenai jenis data tersuai. Kaedah

tidak lagi tersedia dalam versi terkini. Panduan ini memperincikan cara melaksanakan pertanyaan SQL mentah yang mengembalikan jenis tersuai dalam pelbagai versi teras EF. dbData.Database.SqlQuery<somemodel>

ef teras 8 dan kemudian

EF CORE 8 dan siaran berikutnya dengan ketara meningkatkan kaedah

, secara langsung menyokong pulangan jenis sewenang -wenangnya. Ini memudahkan prosesnya dengan ketara. SqlQuery

EF Core 3.0 dan kemudian

memanfaatkan jenis entiti tanpa kunci:

Pendekatan yang disyorkan untuk mengendalikan jenis data tersuai dalam pertanyaan SQL mentah dalam EF Core 3.0 dan kemudiannya menggunakan jenis entiti tanpa kunci. Ini dicapai menggunakan atribut

atau kaedah konfigurasi [Keyless]. .HasNoKey()

<code class="language-csharp">[Keyless]
public class SomeModel
{
    // Properties
}</code>
Jalankan pertanyaan anda menggunakan sama ada

atau FromSqlRaw: FromSql

<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("SQL_SCRIPT").ToList();
var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();</code>
EF Core 2.1 (RC1)

Menggunakan dBQuery : di EF Core 2.1 RC1, tentukan harta

dalam

anda dan gunakan kaedah DbQuery<T>: DbContext FromSql

EF CORE 2.0
<code class="language-csharp">public DbSet<SomeModel> SomeModels { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeModel>().HasNoKey();
}

// Execute query
var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();</code>

Strategi alternatif:

EF Core 2.0 memerlukan penyelesaian:

    Custom DTOS:
  • Buat objek pemindahan data khusus (DTOS) ke hasil pertanyaan peta. Ini memerlukan pemetaan data manual.
  • sqlCommand:
  • penggunaan langsung . Ini memintas ciri EF Core, mengurangkan faedahnya. SqlCommand

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pertanyaan SQL mentah dengan jenis data tersuai dalam teras kerangka entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn