实体数据模型 (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>