sql >> Database teknologi >  >> RDS >> Sqlserver

Hentning af data fra lagret procedure med Entity Framework

Brug følgende trin til at løse dette problem:

  1. Du skal importere den lagrede procedure som en funktion. Højreklik på arbejdsområdet for din enhedsmodel, og vælg Add -> Function Import .
  2. I dialogboksen Tilføj funktionsimport skal du indtaste det navn, du ønsker, at din lagrede procedure skal henvise til i din model, f.eks. Search_Products , vælg din procedure fra rullelisten, og vælg returværdien for proceduren til at være Entities og vælg Products fra rullelisten.
  3. Så i koden bag:

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

Grunden til at du får -1 for resultatet er, at Entity Framework ikke kan understøtte Stored Procedure Return-værdier ud af boksen. Jeg tror, ​​at understøttelse af returneringsværdier for lagrede procedurer afhænger af versionen af ​​Entity framework. Entity Framework har heller ikke understøttelse af omfattende lagrede procedurer, fordi det er en ORM, ikke en SQL-erstatning.



  1. Oprettelse af en Docker Swarm Cluster på Azure Container Service

  2. SQL CREATE TABLE for begyndere

  3. Sådan tilslutter du dig på flere kolonner

  4. Sammenligning af datoer gemt som varchar