Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Berjaya Mendapatkan Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti dalam ASP.NET?

Bagaimanakah Saya Boleh Berjaya Mendapatkan Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti dalam ASP.NET?

DDD
DDDasal
2024-12-29 00:10:10470semak imbas

How Can I Successfully Retrieve Data from a Stored Procedure Using Entity Framework in ASP.NET?

Menggunakan Rangka Kerja Entiti untuk Mengambil Data daripada Prosedur Tersimpan

Dalam bidang pembangunan web, keperluan sering timbul untuk mengisi set data dalam aplikasi daripada sumber data. Di sinilah Rangka Kerja Entiti memainkan peranan, menyediakan antara muka berorientasikan objek untuk berinteraksi dengan pangkalan data. Walau bagaimanapun, apabila ia datang untuk mendapatkan semula data daripada prosedur yang disimpan, cabaran tertentu mungkin dihadapi.

Pertimbangkan prosedur tersimpan berikut dalam Pelayan SQL:

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

Dalam percubaan untuk mendapatkan semula data daripada ini prosedur tersimpan menggunakan Rangka Kerja Entiti 6.1.1 dan mengisi kawalan GridView, kod C# berikut mungkin digunakan:

var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.SearchProducts(TEST_SEARCH_TERM);

MyGridView.DataSource = result;
MyGridView.DataBind();

Walau bagaimanapun, selepas melaksanakan kod dalam aplikasi ASP.NET, pengecualian berlaku, dengan pembolehubah hasil mengembalikan -1 dan bukannya Set Data IEnumerable yang dikehendaki. Untuk menangani isu ini dan berjaya mendapatkan semula data, langkah berikut harus diikuti:

  1. Import Prosedur Tersimpan sebagai Fungsi:

    • Klik kanan pada kawasan ruang kerja model Entiti anda dan pilih "Tambah" -> "Import Fungsi."
  2. Konfigurasikan Import Fungsi:

    • Dalam dialog "Tambah Import Fungsi", sediakan nama untuk fungsi, cth., "Search_Products."
    • Pilih Prosedur tersimpan "SearchProducts" daripada senarai lungsur turun.
    • Tetapkan nilai pulangan prosedur kepada "Entiti" dan pilih "Produk" daripada senarai lungsur turun.
  3. Ubah suai Kod Di belakang:

    • Tukar kod dalam coretan yang diberikan kepada:
var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.Search_Products(TEST_SEARCH_TERM); // Replace "SearchProducts" with your chosen function name

MyGridView.DataSource = result;
MyGridView.DataBind();

Kaedah ini menyelesaikan isu dengan mengimport yang disimpan prosedur sebagai fungsi dalam model Rangka Kerja Entiti, membolehkan ia diakses dan dilaksanakan dengan nilai pulangan ditetapkan kepada IEnumerable Dataset.

Adalah penting untuk ambil perhatian bahawa walaupun Rangka Kerja Entiti menyediakan mekanisme yang mudah untuk berinteraksi dengan pangkalan data, sokongannya untuk prosedur tersimpan adalah terhad dan tidak dapat mengendalikan nilai pemulangan prosedur tersimpan secara asli.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berjaya Mendapatkan Data daripada Prosedur Tersimpan Menggunakan Rangka Kerja Entiti dalam ASP.NET?. 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