Maison >développement back-end >C++ >Comment récupérer des données d'une procédure stockée à l'aide d'Entity Framework sans obtenir un ensemble de données vide ?

Comment récupérer des données d'une procédure stockée à l'aide d'Entity Framework sans obtenir un ensemble de données vide ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-03 10:25:41220parcourir

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

Récupération de données à partir de procédures stockées à l'aide d'Entity Framework

Problème :
Les développeurs rencontrent des difficultés à récupérer des données à partir d'une procédure stockée lors de l'utilisation d'Entity Framework (EF), ce qui entraîne un ensemble de données vide (-1) au lieu de celui attendu data.

Procédure stockée :

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

Code C# :

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

MyGridView.DataSource = result;
MyGridView.DataBind();

Solution :
Pour résoudre ce problème, suivez ces étapes :

  1. Importez la procédure stockée en tant que fonction :

    • Cliquez avec le bouton droit sur la zone d'espace de travail de votre modèle d'entité et sélectionnez "Ajouter" -> "Importation de fonction."
    • Entrez le nom souhaité pour la procédure stockée (par exemple, Search_Products) et sélectionnez la procédure dans la liste déroulante.
    • Définissez la valeur de retour sur "Entités" et choisissez « Produits » comme type d'entité.
  2. Mettre à jour le code Derrière :

    • Remplacez le code existant par ce qui suit :

      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();

En important le code stocké procédure en tant que fonction, Entity Framework peut récupérer et renvoyer correctement les données de la procédure stockée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn