Compartir a través de


NavigationProperty (Elemento) (CSDL)

Un elemento NavigationProperty define una propiedad de navegación que, a su vez, proporciona una referencia al otro extremo de una asociación. A diferencia de las propiedades definidas con el elemento Property, las propiedades de navegación no definen la forma ni las características de los datos. Proporcionan una manera de desplazarse por una asociación entre dos tipos de entidad.

Las propiedades de navegación son opcionales en los dos tipos de entidad de los extremos de una asociación. Si define una propiedad de navegación en un tipo de entidad del extremo de una asociación, no tiene que definir una propiedad de navegación en el tipo de entidad del otro extremo de la asociación.

El tipo de datos devuelto por una propiedad de navegación viene determinado por la multiplicidad de su extremo remoto de la asociación. Por ejemplo, supongamos que una propiedad de navegación, OrdersNavProp, existe en un tipo de entidad Customer y navega a una asociación uno a varios entre Customer y Order. Dado que el extremo remoto de la asociación para la propiedad de navegación tiene la multiplicidad de muchos (*), su tipo de datos es una colección (de Order). De igual forma, si una propiedad de navegación, CustomerNavProp, existe en el tipo de entidad Order, su tipo de datos sería Customer, porque la multiplicidad del extremo remoto es uno (1).

Un elemento NavigationProperty puede tener los elementos secundarios siguientes (en el orden mostrado):

Atributos aplicables

En la tabla siguiente se describen los atributos que se pueden aplicar al elemento NavigationProperty.

Nombre de atributo Es necesario Valor

Name

Nombre de la propiedad de navegación.

Relationship

Nombre de una asociación que se encuentra dentro del ámbito del modelo.

ToRole

Extremo de la asociación en el que finaliza la navegación. El valor del atributo ToRole debe coincidir con el valor de uno de los atributos Role definidos en uno de los extremos de la asociación (definido en el elemento AssociationEnd).

FromRole

Extremo de la asociación desde el que comienza la navegación. El valor del atributo FromRole debe coincidir con el valor de uno de los atributos Role definidos en uno de los extremos de la asociación (definido en el elemento AssociationEnd).

Bb387104.note(es-es,VS.100).gifNota:
Se puede aplicar cualquier número de atributos de anotación (atributos XML personalizados) al elemento NavigationProperty.Sin embargo, es posible que los atributos personalizados no pertenezcan a ningún espacio de nombres XML reservado para CSDL.Dos atributos personalizados cualesquiera no pueden tener nombres completos idénticos.

Ejemplo

En el ejemplo siguiente se define un tipo de entidad (Book) con dos propiedades de navegación (PublishedBy y WrittenBy):

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

Vea también

Conceptos

Información general de Entity Framework
Especificación CSDL
Schema (Elemento) (CSDL)

Otros recursos

Especificaciones CSDL, SSDL y MSL
ADO.NET Entity Data Model Tools
navigation property (Entity Data Model)