首頁 >資料庫 >mysql教程 >如何正確使用 DbContext.Database.SqlQuery 與預存程序參數?

如何正確使用 DbContext.Database.SqlQuery 與預存程序參數?

Susan Sarandon
Susan Sarandon原創
2025-01-17 12:06:14534瀏覽

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

EF Code First CTP5:使用帶預存程序參數的DbContext.Database.SqlQuery(sql, params)

問題:

開發人員嘗試使用帶有預存程序的DbContext.Database.SqlQuery方法時,在提供參數方面面臨挑戰。當使用SqlParameter物件時,會拋出SqlException異常,指示參數未如預期提供。

解答:

為了成功地將DbContext.Database.SqlQuery方法與需要參數的預存程序一起使用,應採用以下方法:

解:

不要直接將SqlParameter物件作為參數傳遞,而是修改SQL查詢字串以包含以「@」符號開頭的參數名稱。然後,為每個所需參數建立和指派SqlParameter實例,並將它們作為附加參數提供。

程式碼範例:

以下程式碼片段示範了正確的用法:

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

此更新後的語法應解決SqlException問題,並允許您使用DbContext.Database.SqlQuery方法從預存程序檢索所需的結果。

以上是如何正確使用 DbContext.Database.SqlQuery 與預存程序參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn