다음을 통해 공유


방법: 개념적 모델의 사용자 지정 함수 정의(Entity Framework)

DefiningExpression 요소를 포함하는 Function 요소를 .edmx 파일의 CSDL(개념 스키마 정의 언어)에 추가하여 개념적 모델에서 사용자 지정 함수를 정의할 수 있습니다. CommandText 요소에서 매개 변수가 있는 문을 포함하여 Entity SQL 문을 정의할 수 있습니다.

자세한 내용은 DefiningExpression (CSDL)User-Defined Functions (Entity SQL)를 참조하십시오.

개념적 모델에서 사용자 지정 함수 정의

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

개념적 모델에서 사용자 지정 함수를 정의하려면

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

    Dd456812.note(ko-kr,VS.100).gif참고:
    ReturnType 특성을 사용하여 함수에 대한 반환 형식을 지정해야 합니다.

    자세한 내용은 Function Element (SSDL), Schema Element (SSDL)ReturnType (CSDL)을 참조하십시오.

  2. 함수가 받아들일 각 매개 변수에 대해 Parameter 요소를 Function 요소에 추가합니다.

    Dd456812.note(ko-kr,VS.100).gif참고:
    함수 매개 변수는 @와 같은 접두사로 표시되지 않습니다.이러한 매개 변수는 함수를 정의하는 Entity SQL 식의 이름으로 직접 참조됩니다.Entity SQL 식에 사용해야 할 다른 식별자와 같지 않은 매개 변수 이름을 선택합니다.

    자세한 내용은 Parameter Element (CSDL)를 참조하십시오.

  3. DefiningExpression 요소를 새 Function 요소에 추가합니다.

  4. DefiningExpression 요소에서 Entity SQL 문을 정의합니다.

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

예제

다음은 사용자 지정 함수를 정의하기 위해 .edmx 파일의 개념적 모델 콘텐츠 섹션에 있는 Schema 요소에 추가할 수 있는 Function 요소의 예제입니다. 이 Function 요소를 School 모델에 추가하면 강사가 고용된 이후 지난 연도 수를 확인하는 기능이 제공됩니다.

School 모델 예제에 대한 자세한 내용은 Creating the School Sample DatabaseGenerating the School Entity Data Model을 참조하십시오.

<Function Name="YearsSince" ReturnType="Edm.Int32">
  <Parameter Name="date" Type="Edm.DateTime" />
  <DefiningExpression>
    Year(CurrentDateTime()) - Year(date)
  </DefiningExpression>
</Function>

함수가 개념적 모델에서 정의되면 응용 프로그램의 Entity SQL 쿼리 내에서 호출할 수 있습니다. LINQ to Entities 쿼리에서 함수를 호출하는 방법은 How to: Call Functions Defined in the Conceptual Model을 참조하십시오.

참고 항목

작업

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

개념

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

기타 리소스

.edmx 파일 수동 편집(Entity Framework)
엔터티 데이터 모델 도구
Calling Functions in LINQ to Entities