首頁 > 後端開發 > C++ > 如何使用實體框架從預存程序中檢索資料而不取得空資料集?

如何使用實體框架從預存程序中檢索資料而不取得空資料集?

Mary-Kate Olsen
發布: 2025-01-03 10:25:41
原創
263 人瀏覽過

How to Retrieve Data from a Stored Procedure Using Entity Framework Without Getting an Empty Dataset?

使用實體框架從預存程序中擷取資料

問題:
開發人員在使用實體框架時從儲存程序中擷取資料時遇到困難(EF),導致空資料集(-1),而不是預期的資料。

預存程序:

ALTER PROCEDURE dbo.SearchProducts
  @SearchTerm VARCHAR(max)
AS
BEGIN
  DECLARE @query VARCHAR(max)
  SET @query = 'SELECT * FROM dbo.Products WHERE Name LIKE ''%' + @SearchTerm + '%'''
  EXEC(@query)
END
登入後複製

C# 程式碼:

var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.SearchProducts(TEST_SEARCH_TERM);

MyGridView.DataSource = result;
MyGridView.DataBind();
登入後複製

解決方案🎜>要解決此問題,請依照下列步驟操作步驟:

  1. 將儲存程序匯入為函數:

      右鍵點選實體模型的工作區並選擇「新增」-> 「函數匯入。」
    • 輸入所需的預存程序名稱(例如,Search_Products)並從下拉清單中選擇此程序。
    • 將回傳值設為「Entities」並選擇「產品」作為實體
  2. 更新背後的程式碼:

    • 將現有程式碼替換為以下:

      var db = new MyEntities();
      var TEST_SEARCH_TERM = "product";
      var result = db.Search_Products(TEST_SEARCH_TERM); // Search_Products is the name specified in the Function Import dialog
      
      MyGridView.DataSource = result;
      MyGridView.DataBind();
      登入後複製
透過將預存程序作為函數匯入,實體框架可以正確擷取並傳回預存程序中的數據。

以上是如何使用實體框架從預存程序中檢索資料而不取得空資料集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板