>백엔드 개발 >C++ >빈 데이터 세트를 가져오지 않고 Entity Framework를 사용하여 저장 프로시저에서 데이터를 검색하는 방법은 무엇입니까?

빈 데이터 세트를 가져오지 않고 Entity Framework를 사용하여 저장 프로시저에서 데이터를 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-03 10:25:41220검색

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

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

문제:
개발자는 Entity Framework를 사용할 때 저장 프로시저에서 데이터를 검색하는 데 어려움을 겪습니다. (EF)로 인해 예상되는 데이터 세트 대신 빈 데이터 세트(-1)가 발생합니다. data.

저장 프로시저:

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

C# 코드:

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

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

솔루션:
이 문제를 해결하려면 다음을 따르세요. 단계:

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

    • 엔티티 모델의 작업 영역을 마우스 오른쪽 버튼으로 클릭하고 "추가" -> "함수 가져오기."
    • 저장 프로시저에 원하는 이름(예: Search_Products)을 입력하고 드롭다운 목록에서 프로시저를 선택합니다.
    • 반환 값을 "엔티티"로 설정하고 엔터티로 "제품"을 선택하십시오. type.
  2. 코드 숨김 업데이트:

    • 기존 코드를 다음:

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

저장 프로시저를 함수로 가져오면 Entity Framework가 저장 프로시저에서 데이터를 적절하게 검색하고 반환할 수 있습니다.

위 내용은 빈 데이터 세트를 가져오지 않고 Entity Framework를 사용하여 저장 프로시저에서 데이터를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.