> 백엔드 개발 > C++ > ASP.NET에서 Entity Framework를 사용하여 저장 프로시저에서 데이터를 성공적으로 검색하려면 어떻게 해야 합니까?

ASP.NET에서 Entity Framework를 사용하여 저장 프로시저에서 데이터를 성공적으로 검색하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-29 00:10:10
원래의
491명이 탐색했습니다.

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

Entity Framework를 사용하여 저장 프로시저에서 데이터 검색

웹 개발 영역에서는 애플리케이션에 데이터 세트를 채워야 하는 경우가 종종 발생합니다. 데이터 소스에서. 데이터베이스와 상호 작용하기 위한 개체 지향 인터페이스를 제공하는 Entity Framework가 작동하는 곳입니다. 그러나 저장 프로시저에서 데이터를 검색할 때 특정 문제에 직면할 수 있습니다.

SQL Server에서 다음 저장 프로시저를 고려하십시오.

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
로그인 후 복사

이 저장 프로시저에서 데이터를 검색하려는 시도에서 Entity Framework 6.1.1을 사용하여 저장 프로시저를 작성하고 GridView 컨트롤을 채우는 경우 다음 C# 코드는 다음과 같습니다. 채용:

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

MyGridView.DataSource = result;
MyGridView.DataBind();
로그인 후 복사

그러나 ASP.NET 애플리케이션에서 코드를 실행하면 결과 변수가 원하는 IEnumerable 데이터 세트 대신 -1을 반환하는 예외가 발생합니다. 이 문제를 해결하고 데이터를 성공적으로 검색하려면 다음 단계를 따라야 합니다.

  1. 저장 프로시저를 함수로 가져오기:

    • 엔티티 모델의 작업 영역을 마우스 오른쪽 버튼으로 클릭하고 "추가" -> "함수 가져오기."
  2. 함수 가져오기 구성:

    • "함수 가져오기 추가" 대화 상자에서 다음을 제공합니다. 기능 이름(예: "Search_Products")
    • 드롭다운 목록에서 "SearchProducts" 저장 프로시저.
    • 프로시저의 반환 값을 "엔티티"로 설정하고 드롭다운 목록에서 "제품"을 선택합니다.
  3. 코드 수정 뒤에:

    • 주어진 코드 조각의 코드를 다음으로 변경합니다.
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();
로그인 후 복사

이 방법은 저장된 코드를 가져와서 문제를 해결합니다. 프로시저를 Entity Framework 모델 내의 함수로 사용하여 반환 값을 IEnumerable로 설정하여 액세스하고 실행할 수 있습니다. 데이터 세트.

Entity Framework는 데이터베이스와 상호 작용하기 위한 편리한 메커니즘을 제공하지만 저장 프로시저에 대한 지원은 제한적이며 저장 프로시저 반환 값을 기본적으로 처리할 수 없다는 점에 유의하는 것이 중요합니다.

위 내용은 ASP.NET에서 Entity Framework를 사용하여 저장 프로시저에서 데이터를 성공적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿