Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma propriedade de navegação é uma propriedade opcional em um tipo de entidade que permite a navegação de uma extremidade de uma associação para a outra extremidade. Ao contrário de outras propriedades, as propriedades de navegação não transportam dados.
Uma definição de propriedade de navegação inclui o seguinte:
Um nome. (Necessário)
A associação que navega. (Necessário)
Os objetivos da associação que orienta. (Necessário)
As caraterísticas de navegação são opcionais em ambos os tipos de entidade nos extremos de uma associação. Se você definir uma propriedade de navegação em um tipo de entidade no final de uma associação, não será necessário definir uma propriedade de navegação no tipo de entidade na outra extremidade da associação.
O tipo de dados de uma propriedade de navegação é determinado pela multiplicidade de sua extremidade de associação remota. Por exemplo, suponha que uma propriedade de navegação, OrdersNavProp, exista numa entidade do tipo Customer e navegue por uma associação um-para-muitos entre Customer e Order. Como o final de associação remota para a propriedade de navegação tem multiplicidade de muitos (*), seu tipo de dados é uma coleção (de Order). Da mesma forma, se uma propriedade de navegação, CustomerNavProp, existe no Order tipo de entidade, seu tipo de dados seria Customer, porque a multiplicidade da extremidade remota é uma (1).
Exemplo
O diagrama abaixo mostra um modelo conceitual com três tipos de entidade: Book, Publisher, e Author. As propriedades de navegação Publisher e Authors são definidas no tipo de entidade Livro. A propriedade de navegação Books é definida tanto no tipo de entidade Publisher como no tipo de entidade Author.
O ADO.NET Entity Framework usa uma linguagem específica de domínio (DSL) chamada linguagem de definição de esquema conceitual (CSDL) para definir modelos conceituais. O seguinte CSDL define o tipo de entidade Book mostrado no diagrama acima.
<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>
Os atributos XML são usados para comunicar as informações necessárias para definir uma propriedade de navegação: O atributo Name contém o nome da propriedade, Relationship contém o nome da associação que ele navega e FromRoleToRole contém as extremidades da associação.