Maison >développement back-end >C++ >Comment puis-je récupérer avec succès les données d'une procédure stockée à l'aide d'Entity Framework dans ASP.NET ?
Utiliser Entity Framework pour récupérer des données à partir d'une procédure stockée
Dans le domaine du développement Web, il est souvent nécessaire de remplir des ensembles de données dans des applications à partir de sources de données. C'est là qu'Entity Framework entre en jeu, fournissant une interface orientée objet pour interagir avec les bases de données. Cependant, lorsqu'il s'agit de récupérer des données à partir de procédures stockées, certains défis peuvent être rencontrés.
Considérez la procédure stockée suivante dans 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
Pour tenter de récupérer des données à partir de cette procédure procédure stockée à l'aide d'Entity Framework 6.1.1 et remplir un contrôle GridView, le code C# suivant peut être utilisé :
var db = new MyEntities(); var TEST_SEARCH_TERM = "product"; var result = db.SearchProducts(TEST_SEARCH_TERM); MyGridView.DataSource = result; MyGridView.DataBind();
Cependant, lors de lors de l'exécution du code dans une application ASP.NET, une exception se produit, la variable de résultat renvoyant -1 au lieu de l'ensemble de données IEnumerable souhaité. Pour résoudre ce problème et récupérer les données avec succès, les étapes suivantes doivent être suivies :
Importer la procédure stockée en tant que fonction :
Configurez l'importation de fonction :
Modifier le code derrière :
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();
Cette méthode résout le problème en important la procédure stockée en tant que fonction dans le modèle Entity Framework, permettant d'y accéder et de l'exécuter avec la valeur de retour étant défini sur un ensemble de données IEnumerable.
Il est important de noter que même si Entity Framework fournit un mécanisme pratique pour interagir avec les bases de données, sa prise en charge des procédures stockées est limité et n'est pas capable de gérer nativement les valeurs de retour des procédures stockées.
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!