Menggunakan DbContext.Database.SqlQuery
Kod Rangka Kerja Entiti CTP5 Pertama memperkenalkan kaedah DbContext.Database.SqlQuery<T>(sql, params)
, yang menyediakan cara untuk melaksanakan pertanyaan SQL mentah terhadap pangkalan data. Walau bagaimanapun, apabila cuba menggunakan kaedah ini dengan prosedur tersimpan yang mempunyai parameter, pembangun mungkin menghadapi pengecualian yang menunjukkan bahawa tiada parameter disediakan.
Penyelesaian:
Untuk berjaya menggunakan DbContext.Database.SqlQuery<T>(sql, params)
dengan prosedur tersimpan yang memerlukan parameter, parameter mesti dinyatakan sebagai SqlParameter
objek. Sintaks yang betul ialah:
<code class="language-csharp">context.Database.SqlQuery<我的实体类型>( "我的存储过程名称 @param1, @param2, @param3", new SqlParameter("param1", param1), new SqlParameter("param2", param2), new SqlParameter("param3", param3) );</code>
Dalam contoh ini, "nama prosedur tersimpan saya" ialah nama prosedur tersimpan dan "param1", "param2" dan "param3" ialah nilai yang akan dihantar kepada parameter yang sepadan dalam prosedur tersimpan . Dengan menentukan parameter dengan cara ini, kaedah SqlQuery boleh memberikan nilai dengan betul kepada prosedur tersimpan untuk pelaksanaan.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan DbContext.Database.SqlQuery dengan Betul dengan Prosedur dan Parameter Tersimpan dalam Kod EF Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!