Facets (CSDL)
Facets in conceptual schema definition language (CSDL) represent constraints on properties of entity types and complex types. Facets appear as XML attributes on the following CSDL elements:
The following table describes the facets that are supported in CSDL. All facets are optional. Some facets listed below are used by the Entity Framework when generating a database from a conceptual model. For more information, see Generate Database Wizard.
Note
For information about data types in a conceptual model, see Conceptual Model Types (CSDL).
Facet | Description | Applies to | Used for the database generation | Used by the runtime |
---|---|---|---|---|
Collation |
Specifies the collating sequence (or sorting sequence) to be used when performing comparison and ordering operations on values of the property. |
Edm.String |
Yes |
No |
ConcurrencyMode |
Indicates that the value of the property should be used for optimistic concurrency checks. |
All EDMSimpleType properties |
No |
Yes |
Default |
Specifies the default value of the property if no value is supplied upon instantiation. |
All EDMSimpleType properties |
Yes |
Yes |
FixedLength |
Specifies whether the length of the property value can vary. |
Edm.Binary, Edm.String |
Yes |
No |
MaxLength |
Specifies the maximum length of the property value. |
Edm.Binary, Edm.String |
Yes |
No |
Nullable |
Specifies whether the property can have a null value. |
All EDMSimpleType properties |
Yes |
Yes |
Precision |
For properties of type Decimal, specifies the number of digits a property value can have. For properties of type Time, DateTime, and DateTimeOffset, specifies the number of digits for the fractional part of seconds of the property value. |
Edm.DateTime, Edm.DateTimeOffset, Edm.Decimal, and Edm.Time. |
Yes |
No |
Scale |
Specifies the number of digits to the right of the decimal point for the property value. |
Edm.Decimal |
Yes |
No |
Unicode |
Indicates whether the property value is stored as Unicode. |
Edm.String |
Yes |
Yes |
Note When generating a database from a conceptual model, the Generate Database Wizard will recognize the value of the StoreGeneratedPattern attribute on a Property element if it is in the following namespace: https://schemas.microsoft.com/ado/2009/02/edm/annotation. The supported values for the attribute are Identity and Computed. A value of Identity will produce a database column with an identity value that is generated in the database. A value of Computed will produce a column with a value that is computed in the database.
Example
The following example shows facets applied to the properties of an entity type:
<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>
For more information, see Property Element (CSDL).
See Also
Reference
System.Data.Metadata.Edm.Facet
Concepts
Other Resources
facet (Entity Data Model)
CSDL, SSDL, and MSL Specifications