Facet (CSDL)
概念結構定義語言 (CSDL) 中的 Facet 表示實體型別和複雜型別屬性上的條件約束。Facet 在下列 CSDL 元素上會以 XML 屬性的形式出現:
下表說明 CSDL 中支援的 Facet。所有的 Facet 都是選擇性的。從概念模型產生資料庫時,Entity Framework 會使用底下列出的某些 Facet。如需詳細資訊,請參閱Generate Database Wizard。
注意: |
---|
如需概念模型中資料型別的詳細資訊,請參閱概念模型型別。 |
Facet | 說明 | 適用於 | 用於產生資料庫 | 由執行階段所使用 |
---|---|---|---|---|
Collation |
指定要使用的定序順序 (或排序順序), 其使用時機是針對屬性值執行比較和排序作業時。 |
Edm.String |
是 |
否 |
ConcurrencyMode |
指示應該用於開放式並行存取檢查的屬性值 。 |
所有 EDMSimpleType 屬性 |
否 |
是 |
Default |
指定屬性的預設值,前提是 執行個體化時未提供任何值。 |
所有 EDMSimpleType 屬性 |
是 |
是 |
FixedLength |
指定屬性值的長度是否可以變更。 |
Edm.Binary, Edm.String |
是 |
否 |
MaxLength |
指定屬性值的最大長度。 |
Edm.Binary, Edm.String |
是 |
否 |
Nullable |
指定屬性是否可以有 null 值。 |
所有 EDMSimpleType 屬性 |
是 |
是 |
Precision |
針對型別 Decimal 的屬性,指定屬性值可以擁有的位數。 如果是 Time 型別的屬性,則 DateTime 和 DateTimeOffset 會針對屬性值秒數的小數部分指定位數。 |
Edm.DateTime, Edm.DateTimeOffset, Edm.Decimal 和 Edm.Time。 |
是 |
否 |
Scale |
指定屬性值小數點右邊的位數。 |
Edm.Decimal |
是 |
否 |
Unicode |
指出屬性值是否儲存為 Unicode。 |
Edm.String |
是 |
是 |
注意:從概念模型產生資料庫時,產生資料庫精靈會辨識 Property 項目上的 StoreGeneratedPattern 屬性值 (如果它位於下列命名空間:https://schemas.microsoft.com/ado/2009/02/edm/annotation 的話)。屬性支援的值是 Identity 和 Computed。Identity 的值會產生含識別值的資料庫資料行,該識別值是在資料庫中產生的。Computed 的值會產生資料行,所包含之值是在資料庫中計算出來的。
範例
下列範例顯示 Facet 套用至實體類型的屬性:
<EntityType Name="Product">
<Key>
<PropertyRef Name="ProductId" />
</Key>
<Property Type="Int32"
Name="ProductId" Nullable="false"
a:StoreGeneratedPattern="Identity"
xmlns:a="https://schemas.microsoft.com/ado/2009/02/edm/annotation" />
<Property Type="String"
Name="ProductName"
Nullable="false"
MaxLength="50" />
<Property Type="String"
Name="Location"
Nullable="true"
MaxLength="25" />
</EntityType>
如需詳細資訊,請參閱Property 項目 (CSDL)。
另請參閱
參考
System.Data.Metadata.Edm.Facet