Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Obtenir des données à partir d'une procédure stockée avec Entity Framework

Utilisez les étapes suivantes pour résoudre ce problème :

  1. Vous devez importer la procédure stockée en tant que fonction. Faites un clic droit sur la zone d'espace de travail de votre modèle d'entité et choisissez Add -> Function Import .
  2. Dans la boîte de dialogue Ajouter une fonction d'importation, saisissez le nom auquel vous souhaitez que votre procédure stockée soit référencée dans votre modèle, par exemple Search_Products , choisissez votre procédure dans la liste déroulante et choisissez la valeur de retour de la procédure à Entities et choisissez Products dans la liste déroulante.
  3. Puis dans le code derrière :

    var db = new MyEntities();
    var TEST_SEARCH_TERM = "product";
    var result = db.Search_Products(TEST_SEARCH_TERM);//Search_Products is the name that you specified in Function Import dialog
    
    MyGridView.DataSource = result;
    MyGridView.DataBind();
    

La raison pour laquelle vous obtenez -1 car le résultat est qu'Entity Framework ne peut pas prendre en charge les valeurs de retour de procédure stockée prêtes à l'emploi. Je pense que la prise en charge des valeurs de retour de procédure stockée dépend de la version du framework Entity. De plus, Entity Framework ne prend pas en charge les procédures stockées riches, car il s'agit d'un ORM et non d'un remplacement SQL.