Kod EF Pertama CTP5: Menggunakan DbContext.Database.SqlQuery dengan parameter prosedur tersimpan
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!