共用方式為


Facet (CSDL)

概念結構定義語言 (CSDL) 中的 Facet 表示實體型別和複雜型別屬性上的條件約束。Facet 在下列 CSDL 元素上會以 XML 屬性的形式出現:

下表說明 CSDL 中支援的 Facet。所有的 Facet 都是選擇性的。從概念模型產生資料庫時,Entity Framework 會使用底下列出的某些 Facet。如需詳細資訊,請參閱Generate Database Wizard

Cc716737.note(zh-tw,VS.100).gif注意:
如需概念模型中資料型別的詳細資訊,請參閱概念模型型別

Facet 說明 適用於 用於產生資料庫 由執行階段所使用

Collation

指定要使用的定序順序 (或排序順序),

其使用時機是針對屬性值執行比較和排序作業時。

Edm.String

ConcurrencyMode

指示應該用於開放式並行存取檢查的屬性值

所有 EDMSimpleType 屬性

Default

指定屬性的預設值,前提是

執行個體化時未提供任何值。

所有 EDMSimpleType 屬性

FixedLength

指定屬性值的長度是否可以變更。

Edm.Binary, Edm.String

MaxLength

指定屬性值的最大長度。

Edm.Binary, Edm.String

Nullable

指定屬性是否可以有 null 值。

所有 EDMSimpleType 屬性

Precision

針對型別 Decimal 的屬性,指定屬性值可以擁有的位數。

如果是 Time 型別的屬性,則 DateTimeDateTimeOffset

會針對屬性值秒數的小數部分指定位數。

Edm.DateTime, Edm.DateTimeOffset,

Edm.DecimalEdm.Time

Scale

指定屬性值小數點右邊的位數。

Edm.Decimal

Unicode

指出屬性值是否儲存為 Unicode。

Edm.String

注意:從概念模型產生資料庫時,產生資料庫精靈會辨識 Property 項目上的 StoreGeneratedPattern 屬性值 (如果它位於下列命名空間:https://schemas.microsoft.com/ado/2009/02/edm/annotation 的話)。屬性支援的值是 IdentityComputedIdentity 的值會產生含識別值的資料庫資料行,該識別值是在資料庫中產生的。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

概念

CSDL 規格

其他資源

facet (Entity Data Model)
CSDL、SSDL 和 MSL 規格