类型约束 (EDM)

实体数据模型 (EDM) 允许在其实体类型的属性之上指定约束。约束限制属性的可能值,并验证赋予属性的值不仅属于正确的数据类型,而且该值还符合应用程序的业务要求。

Nullable 约束

使用 Nullable 约束可以约束任何属性。Nullable 是一种最简单的约束,它指定属性是否可以不赋值(即 Null)。

实体的 Key 属性用于在应用程序中标识该类型的实例。当创建实体时,必须为 Key 属性赋值。对于包含 Key 的某个实体的属性,始终要求 Nullable 约束,而且,将 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)