Share via


Restricciones de tipos (EDM)

El Entity Data Model (EDM) permite la especificación de restricciones a través de las propiedades de sus tipos de entidad. Las restricciones limitan los valores posibles de una propiedad y comprueban que un valor asignado a una propiedad no sólo es del tipo de datos correcto sino que también es válido para los requisitos empresariales de la aplicación.

Restricción que acepta valores NULL

Cualquier propiedad se puede restringir mediante la restricción Nullable. La restricción Nullable es la más sencilla y especifica si el valor de la propiedad puede no asignarse, o ser Null.

La propiedad Key de una entidad se usa para identificar las instancias del tipo en las aplicaciones. A la propiedad Key se le debe asignar un valor cuando se crea la entidad. La restricción Nullable siempre es necesaria en la propiedad de una entidad que contenga a Key y establecer la restricción Nullable en false impide la creación de instancias de entidades sin identificadores.

En el esquema siguiente se especifican restricciones Nullable en las propiedades del tipo Person. La propiedad EMailID puede ser Null, pero a Name se le debe asignar un valor, o se producirá un error en tiempo de ejecución cuando el código guarde el tipo en el almacenamiento.

    <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>

Como en SQL Server, el valor predeterminado del atributo Null es true. Tanto la propiedad Address como la propiedad PhoneNumber de este ejemplo pueden estar sin asignar.

Atributo Default

El atributo Default especifica un valor para una propiedad si no se suministra ninguno cuando se crea una instancia de la entidad. En el ejemplo siguiente, la propiedad Locale tiene como valor predeterminado NW Region si no se proporciona ningún otro valor cuando se crea una instancia de Customer nueva.

    <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>

Vea también

Conceptos

Atributos GetterAccess y SetterAccess (CSDL)
Tipos simples (EDM)