Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Получаване на данни от съхранена процедура с Entity Framework

Използвайте следните стъпки, за да разрешите този проблем:

  1. Трябва да импортирате съхранената процедура като функция. Щракнете с десния бутон върху областта на работното пространство на вашия модел на обект и изберете Add -> Function Import .
  2. В диалоговия прозорец Добавяне на функция за импортиране въведете името, към което искате вашата съхранена процедура да се отнася във вашия модел, например Search_Products , изберете вашата процедура от падащия списък и изберете връщаната стойност на процедурата да бъде Entities и изберете Products от падащия списък.
  3. След това в кода зад:

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

Причината, поради която получавате -1 тъй като резултатът е, че Entity Framework не може да поддържа стойности за връщане на запаметени процедури извън кутията. Мисля, че поддръжката на връщаните стойности на съхранената процедура зависи от версията на Entity Framework. Също така Entity Framework няма богата поддръжка на съхранени процедури, тъй като е ORM, а не SQL заместител.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изпратите HTML имейл от SQL Server (T-SQL)

  2. Тригер за актуализиране на SQL Server, Получавайте само променени полета

  3. Транспониране на редове и колони без агрегат

  4. Пуснете първичния ключ с помощта на скрипт в базата данни на SQL Server

  5. Как мога да изтрия с помощта на INNER JOIN със SQL Server?