型別限制式 (EDM)
實體資料模型 (EDM) 允許透過其實體類型的屬性來指定限制式。限制式會限制屬性的可能值,並確認指派給屬性的值不只是正確的資料型別,而且對於應用程式的商務需求也是有效的。
Nullable 限制式
可以使用 Nullable 限制式來約束任何屬性。Nullable 限制式是最簡單的限制式種類,而且會指定此屬性的值是否可以未指派或是為 Null
。
實體的 Key 屬性是用來識別應用程式中型別的執行個體 (Instance)。當建立此實體時,必須要指派 Key 屬性。包含 Key 之實體的屬性上一定需要 Nullable 限制式,而且將 Nullable 限制式設定為 false 可避免執行個體化 (Instantiation) 沒有識別項的實體。
下列結構描述會在 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
屬性都可以是未指派。
預設屬性
如果建立實體的執行個體時未提供屬性 (Property) 的值,Default 屬性 (Attribute) 會指定屬性 (Property) 的值。在下列範例中,如果在具現化新的 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>