共用方式為


Facet

Facet 可用來將詳細數據新增至基本類型屬性定義。 屬性定義包含屬性類型的相關信息,但通常需要更多詳細數據。 例如,概念模型中的實體類型可能有類型屬性 String ,其值不能設定為 null。 Facet 可讓您指定這個詳細層級。

下表描述了EDM中支援的這些面向。

備註

執行環境使用 EDM 實作來決定構面的確切值與行為。

方面 說明 適用對象
Collation 指定在對屬性值執行比較和排序作業時要使用的定序序列(或排序順序)。 String
ConcurrencyMode 表示屬性的值應該用於樂觀並行控制檢查。 所有基本類型屬性
Default 如果具現化時未提供任何值,則指定 屬性的預設值。 所有基本類型屬性
FixedLength 指定屬性值的長度是否可能有所不同。 BinaryString
MaxLength 指定屬性值的最大長度。 BinaryString
Nullable 指定屬性是否可以有 Null 值。 所有基本類型屬性
Precision 針對類型的 Decimal屬性,指定屬性值可以擁有的位數。 針對類型為TimeDateTimeDateTimeOffset的屬性,指定屬性值中小數秒的位數。 DateTimeDateTimeOffsetDecimalTime
Scale 指定屬性值小數點右邊的位數。 十進制
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>

另請參閱