Vincoli di tipo (EDM)

Entity Data Model (EDM) consente di specificare vincoli per le proprietà dei relativi tipi di entità. I vincoli limitano i valori possibili di una proprietà e verificano non solo che il tipo di dati di un valore assegnato a una proprietà sia corretto ma anche che tale valore sia valido per i requisiti aziendali dell'applicazione.

Vincolo Nullable

Utilizzando il vincolo Nullable è possibile vincolare qualsiasi proprietà. Il vincolo Nullable è il più semplice tipo di vincolo e specifica se il valore della proprietà può essere non assegnato o Null.

La proprietà Key di un'entità viene utilizzata per identificare le istanze del tipo nelle applicazioni. Quando l'entità viene creata, alla proprietà Key deve essere assegnato un valore. Il vincolo Nullable è sempre obbligatorio per la proprietà di un'entità che contiene Key e l'impostazione del vincolo Nullable su false impedisce la creazione di istanze di entità senza identificatori.

Nello schema seguente sono specificati i vincoli Nullable sulle proprietà del tipo Person. La proprietà EMailID può essere Null, ma è necessario che a Name venga assegnato un valore. In caso contrario, viene generato un errore di runtime quando il codice salva il tipo nell'archivio.

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

Come in SQL Server, il valore predefinito dell'attributo Null è true. Sia la proprietà Address che la proprietà PhoneNumber in questo esempio possono essere non assegnate.

Attributo Default

L'attributo Default specifica un valore per una proprietà se non viene fornito alcun valore al momento della creazione di un'istanza dell'entità. Nell'esempio seguente il valore predefinito della proprietà Locale viene impostato su NW Region se non viene fornito alcun altro valore al momento della creazione di un'istanza di una nuova entità Customer.

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

Vedere anche

Concetti

Attributi GetterAccess e SetterAccess (CSDL)
Tipi semplici (EDM)