类型约束 (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>