Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti Tanpa Mendapat Set Data Kosong?

Bagaimana untuk Mendapatkan Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti Tanpa Mendapat Set Data Kosong?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-03 10:25:41226semak imbas

How to Retrieve Data from a Stored Procedure Using Entity Framework Without Getting an Empty Dataset?

Mengambil Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti

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:

  1. Import Prosedur Tersimpan sebagai Fungsi:

    • Klik kanan pada kawasan ruang kerja model Entiti anda dan pilih "Tambah" -> "Import Fungsi."
    • Masukkan nama yang diingini untuk prosedur yang disimpan (cth., Cari_Produk) dan pilih prosedur daripada senarai juntai bawah.
    • Tetapkan nilai pulangan kepada "Entiti" dan pilih "Produk" sebagai entiti taip.
  2. 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn