sql >> Databasteknik >  >> RDS >> Sqlserver

Hämta data från lagrad procedur med Entity Framework

Använd följande steg för att lösa problemet:

  1. Du måste importera den lagrade proceduren som en funktion. Högerklicka på arbetsytan för din Entity-modell och välj Add -> Function Import .
  2. I dialogrutan Lägg till funktionsimport anger du namnet som du vill att din lagrade procedur ska refereras till i din modell, till exempel Search_Products , välj din procedur från rullgardinsmenyn och välj returvärdet för proceduren som ska vara Entities och välj Products från rullgardinsmenyn.
  3. Sedan i koden bakom:

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

Anledningen till att du får -1 för resultatet är att Entity Framework inte kan stödja Stored Procedure Return-värden direkt. Jag tror att stödet för returvärden för lagrade förfaranden beror på versionen av Entity-ramverket. Entity Framework har inte heller stöd för omfattande lagrade procedurer eftersom det är en ORM, inte en SQL-ersättning.



  1. 4 sätt att hitta rader som innehåller små bokstäver i MariaDB

  2. Hur du hanterar din databas med Adminer

  3. Hur WEEKDAY() fungerar i MariaDB

  4. Hur man beräknar en kvadratrot i SQL