ホームページ > バックエンド開発 > C++ > ASP.NET で Entity Framework を使用してストアド プロシージャからデータを正常に取得するにはどうすればよいですか?

ASP.NET で Entity Framework を使用してストアド プロシージャからデータを正常に取得するにはどうすればよいですか?

DDD
リリース: 2024-12-29 00:10:10
オリジナル
471 人が閲覧しました

How Can I Successfully Retrieve Data from a Stored Procedure Using Entity Framework in ASP.NET?

Entity Framework を使用してストアド プロシージャからデータを取得する

Web 開発の領域では、アプリケーションにデータセットを設定する必要がよくあります。データソースから。ここで Entity Framework が活躍し、データベースと対話するためのオブジェクト指向インターフェイスを提供します。ただし、ストアド プロシージャからデータを取得する場合、特定の課題が発生する可能性があります。

SQL Server で次のストアド プロシージャを考えてみましょう。

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
ログイン後にコピー

ここからデータを取得しようとすると、 Entity Framework 6.1.1 を使用してストアド プロシージャを作成し、GridView コントロールにデータを設定するには、次の C# コードを使用します。採用:

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

MyGridView.DataSource = result;
MyGridView.DataBind();
ログイン後にコピー

ただし、ASP.NET アプリケーションでコードを実行すると例外が発生し、結果変数が目的の IEnumerable データセットではなく -1 を返します。この問題に対処し、データを正常に取得するには、次の手順に従う必要があります:

  1. ストアド プロシージャを関数としてインポート:

    • エンティティ モデルのワークスペース領域を右クリックし、[追加] -> を選択します。 「関数インポート。」
  2. 関数インポートを構成します。

    • 「関数インポートの追加」ダイアログで、次のように指定します。関数の名前 (例: "Search_Products")。
    • ドロップダウン リストから "SearchProducts" ストアド プロシージャを選択します。
    • プロシージャの戻り値を "Entities" に設定し、ドロップダウン リストから "Products" を選択します。
  3. コードを変更する背後:

    • 指定されたスニペットのコードを次のように変更します:
var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.Search_Products(TEST_SEARCH_TERM); // Replace "SearchProducts" with your chosen function name

MyGridView.DataSource = result;
MyGridView.DataBind();
ログイン後にコピー

このメソッドは、保存されているファイルをインポートすることで問題を解決します。プロシージャを Entity Framework モデル内の関数として作成し、戻り値を IEnumerable に設定してアクセスおよび実行できるようにします。 Dataset.

Entity Framework はデータベースと対話するための便利なメカニズムを提供しますが、ストアド プロシージャのサポートは制限されており、ストアド プロシージャの戻り値をネイティブに処理できないことに注意することが重要です。

以上がASP.NET で Entity Framework を使用してストアド プロシージャからデータを正常に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート