facet

Facet 用於為基底類型屬性定義新增詳細資料。 屬性定義了包含有關屬性型別的資訊,但通常需要更多詳細資料。 例如,概念模型中的實體類型可能會有 String 型別的屬性,其值不可設為 null。 Facet 可讓您指定此詳細層級。

下表描述 EDM 中支援的 Facet。

注意

確切的 Facet 值和行為取決於使用 EDM 實作的執行階段環境。

Facet 描述 適用於
Collation 在執行比較和排序屬性值的作業時,指定要使用的定序順序 (或排序順序)。 String
ConcurrencyMode 表示屬性值應用於開放式並行存取檢查。 所有基底類型屬性
Default 執行個體化時如果沒有提供值,請指定屬性的預設值。 所有基底類型屬性
FixedLength 指定屬性值的長度是否可以變更。 Binary, String
MaxLength 指定屬性值的最大長度。 Binary, String
Nullable 指定屬性是否可以有 null 值。 所有基底類型屬性
Precision 針對型別 Decimal 的屬性,指定屬性值可以擁有的位數。 針對型別 TimeDateTimeDateTimeOffset 的屬性,指定屬性值秒數之小數點後的位數。 DateTime, DateTimeOffset, Decimal, Time,
Scale 指定屬性值小數點右邊的位數。 Decimal
Unicode 指出屬性值是否儲存為 Unicode。 String

範例

ADO.NET Entity Framework 會使用稱為概念結構定義語言 (CSDL) 的特定領域語言 (DSL) 來定義概念模型。 下列 CSDL 定義 Book 實體類型。 請注意,Facet 會實作為 XML 屬性。 Facet 值表示不可將任何屬性設為 null,且 Scale 屬性的 PrecisionRevision 皆分別設為 29。

<EntityType Name="Book">
  <Key>
    <PropertyRef Name="ISBN" />
  </Key>
  <Property Type="String" Name="ISBN" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" />
  <Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
  <NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
                      FromRole="Book" ToRole="Publisher" />
  <NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
                      FromRole="Book" ToRole="Author" />
</EntityType>

另請參閱