Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Meluluskan Parameter ke Prosedur Tersimpan dengan Betul menggunakan DbContext.Database.SqlQuery?

Bagaimana untuk Meluluskan Parameter ke Prosedur Tersimpan dengan Betul menggunakan DbContext.Database.SqlQuery?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-17 12:12:10120semak imbas

How to Correctly Pass Parameters to Stored Procedures using DbContext.Database.SqlQuery?

Gunakan DbContext.Database.SqlQueryuntuk menanyakan prosedur yang disimpan

Dalam Kod Rangka Kerja Entiti CTP5 Pertama, anda boleh menggunakan kaedah DbContext.Database.SqlQuery<T>(sql, params) untuk melaksanakan prosedur tersimpan. Walau bagaimanapun, anda mungkin menghadapi masalah apabila menghantar parameter kepada prosedur tersimpan yang memerlukan nama parameter yang tepat.

Untuk menyelesaikan isu ini, anda harus menyediakan contoh SqlParameter dalam format berikut:

<code class="language-csharp">context.Database.SqlQuery<我的实体类型>(
    "我的存储过程名称 @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3)
);</code>

Ini memastikan bahawa parameter sepadan dengan betul dengan nama mereka dalam prosedur yang disimpan. Dengan memberikan nama parameter secara eksplisit, anda boleh mengelakkan ralat "Prosedur atau fungsi 'nama prosedur tersimpan saya' memerlukan parameter '@param1', tetapi ia tidak diberikan".

Kaedah ini membolehkan anda membuat pertanyaan secara dinamik terhadap prosedur yang disimpan dengan cara ditaip kuat, menjadikannya mudah untuk menggunakan Rangka Kerja Entiti untuk mendapatkan semula data daripada operasi pangkalan data yang kompleks.

Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Parameter ke Prosedur Tersimpan dengan Betul menggunakan DbContext.Database.SqlQuery?. 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