Compartilhar via


Propriedade Navegação

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. (Obrigatória)

  • A associação que navega. (Obrigatória)

  • Termina de associação que navega. (Obrigatória)

As propriedades de navegação são opcionais em ambos os tipos de entidade termina 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 precisará 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 uma propriedade de navegação, OrdersNavProp, existe em um tipo de entidade de Customer e navegar em um para muitos associação entre Customer e Order. Como o fim remoto da associação para a propriedade de navegação tem a multiplicidade de muitos (*), seu tipo de dados é uma coleção (de Order). Da mesma forma, se uma propriedade de navegação, CustomerNavProp, existe no tipo de entidade de Order , seu tipo de dados deve ser Customer, porque a multiplicidade de extremidade remoto é um (1).

Exemplo

O diagrama abaixo mostra um modelo conceitual com três tipos de entidade: Book, Publishere Author. As propriedades de navegação Publisher e Authors são definidas no tipo de entidade Book. A propriedade de navegação Books é definida tanto no tipo de entidade Publisher quanto no tipo de entidade Author.

Diagrama mostrando um modelo conceitual com três tipos de entidade.

O ADO.NET Entity Framework usa uma DSL (linguagem específica do domínio) chamada CSDL (linguagem de definição de esquema conceitual) para definir modelos conceituais. O CSDL a seguir define o Book tipo de entidade 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>

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 navega e FromRoleToRole contêm as extremidades da associação.

Consulte também