RedPlus 개인 블로그

시삽: 레드플러스 님 
게시판 이동:
 제목 : Entity Framework 4에서 저장 프로시저(Stored Procedure) 호출하기
글번호: 202
작성자: Administrator ( 레드플러스 / redplus@live.com )
작성일: 2010/10/07 오후 7:13:00 (2010/10/07 오후 7:13:00 수정)
조회수: 4838

 

이번 실습에서는 Entity Framework 4에서 EDM에 저장 프로시저 등록 후 웹 페이지에서 호출하는 샘플 코드를 보여드리도록 하겠습니다.

 

1. 샘플 데이터베이스인 NORTHWIND.MDF 파일에는 SalesByCategory라는 저장 프로시저가 있습니다. 이를 아래 그림과 같이 Visual Studio 2010의  서버 탐색기에서 확인할 수 있습니다.

SNAG-0000 
 

2. SalesByCategory 저장 프로시저는 2개의 매개변수와 ProductName과 TotalPurchase의 2개의 컬럼값을 가지는 레코드셋을 반환합니다.

SNAG-0001

 

3. NorthwindModel.edmx 파일에는 기본적으로 테이블 형태의 개체만 그래픽 환경으로 제공합니다. 만약, 저장 프로시저를 Entity Designer에 등록하려면, edmx 파일에 마우스 오른쪽 버튼을 클릭한 후 나타나는 메뉴에서 [데이터베이스에서 모델 업데이트] 메뉴를 선택하면 됩니다.

SNAG-0002

 

4. [업데이트 마법사] 메뉴에서 아래 그림과 같이 추가 탭의 테이블, 뷰, 저장 프로시저 선택 화면 중 우리가 연습해 볼 SalesByCategory 저장 프로시저를 선택한 후 [마침] 버튼을 클릭하면 EDM에 저장 프로시저가 등록이 됩니다.

SNAG-0004

 

5. EDM에 등록된 저장 프로시저 목록을 보고자한다면, 보기-다른 창-엔터티 데이터 모델 브라우저 메뉴를 사용하시면 됩니다.

SNAG-0005

 

6. 또는 Entity Designer의 마우스 오른쪽 버튼 눌렀을 때 나타나는 컨텍스트 메뉴중에서 [모델 브라우저]를 선택하셔도 됩니다.

SNAG-0006

 

7. Model 브라우저에 정상적으로 등록된 SalesByCategory 저장 프로시저를 확인합니다. 만약, 목록이 나타나지 않는다면, 현재 프로젝트를 빌드 후 다시 열어보시면 나타납니다.

SNAG-0008

 

8. 등록된 저장 프로시저를 확장시켜보면, 입력 매개변수를 확인할 수 있습니다.

SNAG-0010

 

9. 저장 프로시저에 대한 반환값을 처리하기 위해서는 저장 프로시저 이름에 마우스 오른쪽 버튼을 클릭하면 [함수 가져오기 추가…] 메뉴가 나타납니다. 이를 클릭합니다.

SNAG-0011

 

10. [함수 가져오기 추가] 화면에서는 저장 프로시저를 닷넷의 어떤 메서드(함수)로 가져올 지를 결정할 수 있습니다.

SNAG-0012

 

11. [함수 가져오기 추가] 화면에서 [열 정보 가져오기] 버튼을 클릭하면, 출력 반환값으로 넘겨주는 2개의 열 정보가 노출이되며, 이를 사용하기 위해서는 [새 복합 형식 만들기] 버튼을 클릭하면, 이에 대한 반환값 타입을 자동으로 만들어 줍니다.

SNAG-0013

 

12. 맨 아래의 [새 복합 형식 만들기] 버튼을 클릭하였을 때, _Result 접미사를 가지는 복합 형식이 하나 자동으로 만들어집니다. 이에 대한 결과 화면은 아래와 같습니다.

SNAG-0014

 

13. 복합 형식을 만들고 나서 다시 Model 브라우저로 돌아온 후 [복합 형식] 노드를 확장 시켜보면, 아래 그림처럼, SalesByCategory_Result라는 복합 형식이 만들어져 있음을 확인할 수 있습니다.

SNAG-0015

 

14. 이제 우리가 만들어놓은 저장 프로시저와 동일한 이름을 갖는 메서드를 테스트해보기 위해서 웹 폼을 프로젝트에 추가합니다.

SNAG-0016

 

15. 웹 폼의 태그 영역에는 아래와 같이 간단히 ctlSalesByCategory란 이름의 GridView 컨트롤 하나만 등록합니다.

SNAG-0017

 

16. F7번을 눌러 코드 비하인드 파일로 이동을 해서 아래 코드 샘플처럼, NorthwindEntities() 개체 생성 후 SalesByCategory() 메서드에 2개의 샘플 매개변수를 전달해서 호출해 봅니다.

SNAG-0018

 

17. UsingStoredProcedure.aspx 페이지를 웹 브라우저로 확인해보면, 저장 프로시저의 결과값이 메서드를 통해서 정상적으로 호출됨을 알 수 있습니다. SQL Profiler를 통해서 현재 상태를 추적해보면, 저장 프로시저가 정상적으로 실행됩니다.

SNAG-0019

 

이로써 간단히 ADO.NET Entity Framework 4를 사용하여 SQL Server의 저장 프로시저를 모델에 등록 후 메서드화시켜서 응용 프로그램에서 사용하는 예를 살펴보았습니다.

 

현재 실습의 전체 소스는 아래 링크를 통해서 다운로드 받으실 수 있습니다.

다운로드

 

끝.

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 2010 Microsoft MVP Open Day 참석(사진 업데이트) - Administrator 2010-10-10 3629
현재글 Entity Framework 4에서 저장 프로시저(Stored Procedure) ... - Administrator 2010-10-07 4838
다음글 ADO.NET Entity Framework의 Entity Splitting 관련 좋... - Administrator 2010-10-04 3837
관련 페이지 리스트
numtitlenamedateview
388 C 언어에서 값 전달과 참조 전달(Call By Value and Call By Re... Administrator 2023-03-09 2013
387 병합 알고리즘 순서도 2022-10-22 2781
386 C 언어 강의: scanf를 엔터키를 기준으로 여러 행으로 값을 입력 받기 Administrator 2022-01-09 3640
385 C 언어: scanf 사용해서 표준 입력인 콘솔로부터 나이를 정수로 입력 받아 출력 Administrator 2022-01-07 2629
384 Java 코드 샘플 - Function 인터페이스로 람다 식 만들기 Administrator 2022-01-04 2532
383 C# 코드 샘플 - 널 조건부 연산자 사용하기 Administrator 2022-01-02 2570
382 C# 코드 샘플 - 널 병합 연산자와 default 키워드 Administrator 2022-01-02 2503
381 C# 코드 샘플 - 널 병합 연산자로 문자열 변수의 NULL 값 확인하기 Administrator 2022-01-02 2420
380 C# 강의 - 14세 미만 체크 메서드 구현 Administrator 2022-01-01 2456
379 C 언어 천 단위 콤마 찍기 thousands_separator.c Administrator 2021-12-30 3305
378 for 문 순서도 - for 문(for loop) 순서도(flowchart) Administrator 2021-12-28 5340
377 C 언어 코드 샘플 - 전처리기 - 조건부 컴파일 Administrator 2021-12-27 2454
376 C 언어 코드 샘플 - 전처리기 - 매크로 함수 Administrator 2021-12-27 2459
375 http-server 설치하기 - 로컬 루프백 주소로 웹페이지 실행 2021-12-27 2476
374 C 언어 코드 샘플 - N명의 학생의 점수를 입력받아 1차원 배열에 저장 후 총점 구... Administrator 2021-12-27 2495
373 Java 코드 샘플 - 두 수의 합을 구하는 함수 Administrator 2021-12-26 2402
372 C 언어 코드 샘플 - 두 수의 합을 구하는 함수 Administrator 2021-12-26 2434
371 C# 교과서 강좌 - LINQ - Select 확장 메서드에 익명 형식 사용하기 Administrator 2021-12-26 2495
370 C# 교과서 강의 - LINQ - Select 확장 메서드를 사용하여 새로운 형태로 ... Administrator 2021-12-26 2449
369 C 언어 코드 샘플 - static-shared - 정적(공유) 변수 사용하기 Administrator 2021-12-26 2472
 
 
 
손님 사용자 Anonymous (손님)
로그인 Home