Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggunakan DbContext.Database.SqlQuery dengan betul dengan Parameter Prosedur Tersimpan?

Bagaimana untuk Menggunakan DbContext.Database.SqlQuery dengan betul dengan Parameter Prosedur Tersimpan?

Susan Sarandon
Susan Sarandonasal
2025-01-17 12:06:14534semak imbas

How to Correctly Use DbContext.Database.SqlQuery with Stored Procedure Parameters?

Kod EF Pertama CTP5: Menggunakan DbContext.Database.SqlQuery dengan parameter prosedur tersimpan(sql, params)

Soalan:

Pembangun menghadapi cabaran dalam menyediakan parameter apabila cuba menggunakan kaedah DbContext.Database.SqlQuery dengan prosedur tersimpan. Apabila menggunakan objek SqlParameter, SqlException dilemparkan menunjukkan bahawa parameter tidak disediakan seperti yang diharapkan.

Jawapan:

Untuk berjaya menggunakan kaedah DbContext.Database.SqlQuery dengan prosedur tersimpan yang memerlukan parameter, pendekatan berikut harus digunakan:

Penyelesaian:

Daripada menghantar objek SqlParameter secara langsung sebagai parameter, ubah suai rentetan pertanyaan SQL untuk memasukkan nama parameter bermula dengan simbol "@". Kemudian, cipta dan tetapkan kejadian SqlParameter untuk setiap parameter yang diperlukan dan berikannya sebagai parameter tambahan.

Contoh kod:

Coretan kod berikut menunjukkan penggunaan yang betul:

<code class="language-c#">context.Database.SqlQuery<我的实体类型>(
    "mySpName @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3)
);</code>

Sintaks yang dikemas kini ini harus menyelesaikan isu SqlException dan membolehkan anda menggunakan kaedah DbContext.Database.SqlQuery untuk mendapatkan semula hasil yang dikehendaki daripada prosedur yang disimpan.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan DbContext.Database.SqlQuery dengan betul dengan Parameter Prosedur Tersimpan?. 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