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
Libérer: 2025-01-03 10:25:41
original
279 Les gens l'ont consulté

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
Copier après la connexion

Code C# :

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

MyGridView.DataSource = result;
MyGridView.DataBind();
Copier après la connexion

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();
      Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal