facet

方面用于将详细信息添加到基元类型属性定义。 属性定义包含有关属性类型的信息,但通常还必须提供更详细的信息。 例如,概念模型中的实体类型可能有一个类型为 String 的属性,其值不能设置为 null。 通过方面可以指定这种详细程度。

下表描述了 EDM 中支持的方面。

备注

方面的确切值和行为由使用 EDM 实现的运行时环境确定。

方面 说明 适用于
Collation 指定在对属性值执行比较和排序操作时要使用的排序序列。 String
ConcurrencyMode 表示应使用属性的值来进行开放式并发检查。 所有基元类型属性
Default 如果在安装时未提供值,则指定属性的默认值。 所有基元类型属性
FixedLength 指定属性值的长度是否可变。 BinaryString
MaxLength 指定属性值的最大长度。 BinaryString
Nullable 指定属性是否可以具有 null 值。 所有基元类型属性
Precision 对于类型 Decimal 的属性,指定属性值可以具有的位数。 对于类型 TimeDateTimeDateTimeOffset 的属性,指定属性值的秒的小数部分的位数。 DateTimeDateTimeOffsetDecimalTime
Scale 指定属性值小数点右侧的位数。 小数
Unicode 指示是否将属性值存储为 Unicode。 String

示例

ADO.NET 实体框架使用一种称为概念架构定义语言 (CSDL) 的域特定语言 (DSL) 来定义概念模型。 下面的 CSDL 定义了一个 Book 实体类型。 请注意,方面是作为 XML 特性实现的。 方面值表明不能将属性设置为 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>

请参阅