다음을 통해 공유


방법: 저장소 모델의 사용자 지정 함수 정의(Entity Framework)

CommandText 요소를 포함하는 Function 요소를 .edmx 파일의 SSDL(저장소 스키마 정의 언어)에 추가하여 저장소 모델에서 사용자 지정 함수를 정의할 수 있습니다. 일반적으로 CommandText 요소는 저장 프로시저에서 제공하는 기능과 유사한 기능을 제공하는 데 사용되지만 저장 프로시저는 데이터베이스가 아니라 .edmx 파일에 정의됩니다. CommandText 요소에서 매개 변수가 있는 문을 포함하여 모든 SQL 문을 정의할 수 있습니다.

Dd296754.note(ko-kr,VS.100).gif참고:
아래 절차에서 제시한 대로 .edmx 파일의 SSDL 섹션에 대한 변경 내용은 모델 업데이트 마법사를 사용하여 모델을 업데이트하는 경우 덮어쓰게 됩니다.

저장소 모델에서 사용자 지정 함수 정의

다음 절차에서는 .edmx 파일이 Visual Studio의 XML 편집기에 열려 있다고 가정합니다. 다음 절차에서는 저장소 모델에서 사용자 지정 함수를 추가하는 방법에 대해 간단히 설명합니다. 절차 다음에 나오는 예제에서는 절차의 단계를 더 자세히 설명합니다.

저장소 모델에서 사용자 지정 함수를 정의하려면

  1. .edmx 파일의 저장소 모델 콘텐츠 섹션에 있는 Schema 요소에 Function 요소를 추가합니다.

    자세한 내용은 Function Element (SSDL)Schema Element (SSDL)를 참조하십시오.

  2. Function 요소에 CommandText 요소를 추가합니다.

  3. CommandText 요소에서 SQL 문을 정의합니다.

    문은 매개 변수가 있는 문일 수 있습니다.

  4. SQL 쿼리의 각 문에 대해 Parameter 요소를 Function 요소에 추가합니다. 각 Parameter 요소의 Name, ModeType 특성을 설정합니다.

  5. .edmx 파일을 저장한 후 닫습니다.

  6. ADO.NET 엔터티 데이터 모델 디자이너(Entity Designer)에서 .edmx 파일을 엽니다.

    새로 추가된 함수가 Model 브라우저 창에 저장 프로시저로 나타납니다.

  7. 저장 프로시저에 대한 FunctionImport를 만듭니다. 자세한 내용은 방법: 저장 프로시저 가져오기를 참조하십시오.

예제

다음은 사용자 지정 함수를 정의하기 위해 .edmx 파일의 저장소 모델 콘텐츠 섹션에서 Schema 요소에 추가할 수 있는 Function 요소의 예제입니다. 이 Function 요소를 School 모델에 추가하면 지정된 강사의 사무실 할당을 업데이트할 수 있는 기능이 제공됩니다. School 모델 예제에 대한 자세한 내용은 Quickstart (Entity Framework)를 참조하십시오.

<Function Name="UpdateOfficeAssignment" IsComposable="false">
  <CommandText>
    UPDATE OfficeAssignment
    SET Location = @location
    WHERE InstructorID = @id;
  </CommandText>
  <Parameter Name="location"
             Mode="In"
             Type="nvarchar"/>
  <Parameter Name="id"
             Mode="In"
             Type="int"/>
</Function>

이 함수를 ObjectContext에서 사용할 수 있게 하려면 개념적 모델에서 해당하는 Function Import를 만들어야 합니다. 자세한 내용은 방법: 저장 프로시저 가져오기를 참조하십시오.

참고 항목

작업

방법: 정의 쿼리 추가(Entity Framework)

개념

ADO.NET 엔터티 데이터 모델 디자이너

기타 리소스

.edmx 파일 수동 편집(Entity Framework)
엔터티 데이터 모델 도구