PropertyRef 元素 (CSDL)

以概念架构定义语言 (CSDL) 表示的 PropertyRef 元素引用实体类型的属性,以指示该属性将承担以下角色之一:

  • 实体键的一部分(实体类型的用于确定标识的一个或一组属性)。 可以使用一个或多个 PropertyRef 元素定义实体键。 有关更多信息,请参见 Key 元素

  • 引用约束的依赖端或主体端。 有关更多信息,请参见 ReferentialConstraint 元素

PropertyRef 元素只能具有批注元素(零个或多个)作为子元素。

Ee473439.note(zh-cn,VS.100).gif注意:
批注元素只能用在面向 .NET Framework 版本 4 或更高版本的应用程序的概念模型中。此类模型的 XML 命名空间为 https://schemas.microsoft.com/ado/2008/09/edm。

适用的特性

下表介绍可应用于 PropertyRef 元素的特性。

特性名称 是否必需

Name

所引用属性的名称。

Ee473439.note(zh-cn,VS.100).gif注意:
可以将任何数量的批注特性(自定义 XML 特性)应用于 PropertyRef 元素。然而,自定义特性可能不属于为 CSDL 保留的任何 XML 命名空间。任何两个自定义特性的完全限定名称都不能相同。

示例

下面的示例定义一个实体类型 (Book)。 实体键通过引用实体类型的 ISBN 属性来定义。

<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>

在下一个实例中,使用两个 PropertyRef 元素来指示两个属性(IdPublisherId)是引用约束的主体端和依赖端。

<Association Name="PublishedBy">
  <End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
  </End>
  <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
  <ReferentialConstraint>
    <Principal Role="Publisher">
      <PropertyRef Name="Id" />
    </Principal>
    <Dependent Role="Book">
      <PropertyRef Name="PublisherId" />
    </Dependent>
  </ReferentialConstraint>
</Association>

另请参见

概念

实体框架概述
CSDL 规范
Schema 元素 (CSDL)

其他资源

CSDL、SSDL 和 MSL 规范
ADO.NET Entity Data Model Tools
entity key (Entity Data Model)