問題:
開発者が Entity Framework を使用するときにストアド プロシージャからデータを取得する際に問題が発生する(EF)、予想される代わりに空のデータセット (-1) が生成されます。 data.
ストアド プロシージャ:
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();
ソリューション:
この問題を解決するには、次の手順に従ってください手順:
ストアド プロシージャを関数としてインポート:
更新コードビハインド:
既存のコードを次のものに置き換えます:
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();
インポートによりストアド プロシージャを関数として使用すると、Entity Framework はストアド プロシージャからデータを適切に取得して返すことができます。
以上が空のデータセットを取得せずにEntity Frameworkを使用してストアド プロシージャからデータを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。