实体数据模型 (EDM) 中的外键属性是实体类型上的基元类型属性(或一组基元类型属性),它包含另一实体类型的实体键。
外键属性类似于关系数据库中的外键列。 与在关系数据库中使用外键列来创建表中的行之间的关系相同,概念模型中的外键属性用于在实体类型之间建立 关联 。 当其中一种类型具有外键属性时, 引用完整性约束 用于定义两个实体类型之间的关联。
示例:
下图显示了一个概念模型,其中包含三种实体类型:Book
和Publisher
Author
。 当您在Book
关联上定义参照完整性约束时,PublisherId
实体类型具有一个属性Publisher
,它引用了PublishedBy
实体类型的实体键。
ADO.NET Entity Framework 使用称为概念架构定义语言(CSDL)的特定于域的语言(DSL)来定义概念模型。 以下 CSDL 使用外键属性 PublisherId
来定义上面所示概念模型中所示的关联引用完整性约束 PublishedBy
。
<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>