propriedade de chave estrangeira
Uma propriedade de chave estrangeira no EDM (Modelo de Dados de Entidade) é uma propriedade de tipo primitivo (ou um conjunto de propriedades de tipo primitivo) em um tipo de entidade que contém a chave de entidade de outro tipo de objeto.
Uma propriedade de chave externa é análogo a uma coluna de chave externa em uma base de dados relacional. Assim como as colunas de chave estrangeira são em uma base de dados relacional para criar relações entre linhas em tabelas, as propriedades de chave estrangeira em um modelo conceitual são usadas para estabelecer associações entre tipos de entidade. Uma restrição de integridade referencial é usada para definir uma associação entre dois tipos de entidade quando um dos tipos tem uma propriedade de chave estrangeira.
Exemplo
O diagrama a seguir mostra um modelo conceitual com três tipos de entidade: Book
, Publisher
, e Author
. O tipo de entidade de Book
tem uma propriedade, PublisherId
, que faz referência a chave de entidade do tipo de entidade de Publisher
quando você define uma restrição de integridade referencial em associação de PublishedBy
.
O Entity Framework do ADO.NET usa uma DSL (linguagem específica de domínio) chamada CSDL (linguagem de definição de esquema conceitual) para definir modelos conceituais. CSDL seguir usa a propriedade PublisherId
de chave externa para definir uma restrição de integridade referencial em associação de PublishedBy
mostrada no modelo conceitual mostrado acima.
<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>