Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti Tanpa Mendapat Set Data Kosong?
Masalah:
Pembangun menghadapi kesukaran mendapatkan data daripada prosedur yang disimpan apabila menggunakan Rangka Kerja Entiti (EF), menghasilkan set data kosong (-1) dan bukannya yang dijangkakan data.
Prosedur Tersimpan:
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
Kod C#:
var db = new MyEntities(); var TEST_SEARCH_TERM = "product"; var result = db.SearchProducts(TEST_SEARCH_TERM); MyGridView.DataSource = result; MyGridView.DataBind();
Penyelesaian:
Untuk menyelesaikan isu ini, ikuti ini langkah:
Import Prosedur Tersimpan sebagai Fungsi:
Kemas kini Kod Di Belakang:
Ganti kod sedia ada dengan yang berikut:
var db = new MyEntities(); var TEST_SEARCH_TERM = "product"; var result = db.Search_Products(TEST_SEARCH_TERM); // Search_Products is the name specified in the Function Import dialog MyGridView.DataSource = result; MyGridView.DataBind();
Dengan mengimport prosedur tersimpan sebagai fungsi, Rangka Kerja Entiti boleh mendapatkan semula dan mengembalikan data daripada prosedur tersimpan dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti Tanpa Mendapat Set Data Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!