Partilhar via


Propriedade Navigation

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ório)

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

  • Os fins da associação que navega. (Obrigatório)

As propriedades de navegação são opcionais em ambos os tipos de entidade nas extremidades 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 em um Customer tipo de entidade 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 Publisher de navegação e Authors são definidas no tipo de entidade Livro. A propriedade Books Navigation é definida no tipo de entidade Publisher e no tipo de Author entidade.

Diagram showing a conceptual model with three entity types.

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

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 FromRole ToRole contém as extremidades da associação.

Consulte também