다음을 통해 공유


형식 제약 조건(EDM)

EDM(엔터티 데이터 모델)에서는 엔터티 형식의 속성에 대해 다양한 제약 조건 사양을 지정할 수 있도록 허용합니다. 제약 조건은 속성에 사용할 수 있는 값을 제한하며 속성에 지정된 값의 데이터 형식이 올바르며 해당 값이 응용 프로그램의 비즈니스 요구 사항에도 적합한지 확인합니다.

Nullable 제약 조건

Nullable 제약 조건을 사용하여 모든 속성을 제한할 수 있습니다. Nullable 제약 조건은 가장 단순한 형태의 제약 조건이며 속성 값을 할당하지 않거나 Null을 사용할 수 있는지 여부를 지정합니다.

엔터티의 Key 속성은 응용 프로그램에서 해당 형식의 인스턴스를 식별하는 데 사용됩니다. 엔터티를 만들 때 Key 속성에 값을 할당해야 합니다. Nullable 제약 조건은 Key가 포함된 엔터티의 속성에 항상 필요하며 Nullable 제약 조건을 false로 설정하면 엔터티가 식별자 없이 인스턴스화되는 것이 방지됩니다.

다음 스키마에서는 Person 형식의 속성에 Nullable 제약 조건을 지정합니다. EMailID 속성은 Null일 수 있지만 Name에는 값을 할당해야 하며 그렇지 않으면 코드에서 저장소에 형식을 저장할 때 런타임 오류가 발생합니다.

    <EntityType Name="Person">
        <Key>
            <PropertyRef Name="Name" />
        </Key>
        <Property Name="Name" Type="String" Nullable="false" />
        <Property Name="EmailID" Type="String" Nullable="false" />
        <Property Name="Address" Type="AddressType" Nullable="true" />
        <Property Name="PhoneNumber" Type="String" />
    </EntityType>

SQL Server에서처럼 Null 특성의 기본값은 true입니다. 이 예제의 Address 속성과 PhoneNumber 속성은 할당하지 않을 수 있습니다.

Default 특성

엔터티의 인스턴스를 만들 때 속성의 값이 제공되지 않은 경우 Default 특성이 값을 지정합니다. 다음 예제에서 새 Customer를 인스턴스화할 때 다른 값이 제공되지 않은 경우 Locale 속성의 기본값이 NW Region이 됩니다.

    <EntityType Name="Customer">
        <Key>
            <PropertyRef Name="CustomerId" />
        </Key>
        <Property Name="CustomerId" Type="String" Nullable="false" />
        <Property Name="Name" Type="String" Nullable="false" />
        <Property Name="Locale" Type="String" Default="NW Region"/>
        <!--Other Properties-->
    </EntityType>

참고 항목

개념

GetterAccess 및 SetterAccess 특성(CSDL)
단순 형식(EDM)