首頁 >後端開發 >C++ >如何在 EF Code First 中正確使用 DbContext.Database.SqlQuery 與預存程序和參數?

如何在 EF Code First 中正確使用 DbContext.Database.SqlQuery 與預存程序和參數?

Linda Hamilton
Linda Hamilton原創
2025-01-18 19:07:08748瀏覽

How to Correctly Use DbContext.Database.SqlQuery with Stored Procedures and Parameters in EF Code First?

在 EF Code First CTP5 中使用 DbContext.Database.SqlQuery(sql, params) 方法與預存程序

Entity Framework Code First CTP5 引入了 DbContext.Database.SqlQuery<T>(sql, params) 方法,提供了一種針對資料庫執行原始 SQL 查詢的方式。但是,當嘗試將此方法與具有參數的預存程序一起使用時,開發人員可能會遇到一個異常,指示未提供參數。

解:

要成功地將 DbContext.Database.SqlQuery<T>(sql, params) 與需要參數的預存程序一起使用,必須將參數指定為 SqlParameter 物件。正確的語法是:

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

在此範例中,「我的預存程序名稱」是預存程序的名稱,「param1」、「param2」和「param3」是要傳遞給預存程序中對應參數的值。透過這種方式指定參數,SqlQuery 方法可以正確地將值提供給預存程序以執行。

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

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