Элемент NavigationProperty (язык CSDL)

Элемент NavigationProperty определяет свойство навигации, предоставляющее ссылку на другой элемент ассоциации. В отличие от свойств, определенных в элементе Property, свойства навигации не определяют форму и характеристики данных. Они предоставляют возможность навигации по ассоциации между двумя типами сущностей.

Обратите внимание, что свойства навигации являются необязательными для обоих типов сущностей, расположенных в конечных элементах ассоциации. Если свойство навигации было определено для типа сущности на одном конечном элементе ассоциации, то определять его для типа сущности на другом конечном элементе необязательно.

Тип данных, возвращаемый свойством навигации, определяется числом элементов в удаленном элементе ассоциации. Например, предположим, что свойство навигации OrdersNavProp существует для типа сущности Customer и осуществляет навигацию по ассоциации «один ко многим» между Customer и Order. Поскольку удаленный элемент ассоциации для свойства навигации состоит из нескольких элементов («многие»), он имеет тип данных коллекция (элементов Order). Похожим образом, если свойство навигации CustomerNavProp существует для типа сущности Order, то его тип данных будет равен Customer, поскольку число элементов удаленного элемента ассоциации равно единице («один»).

Элемент NavigationProperty может иметь следующие дочерние элементы (в порядке перечисления).

Применимые атрибуты

В таблице ниже описываются атрибуты, которые можно применить к элементу NavigationProperty.

Имя атрибута Необходимо Значение

Name

Да

Имя свойства навигации.

Relationship

Да

Имя ассоциации, расположенной в пределах области модели.

ToRole

Да

Конечная точка ассоциации на которой заканчивается навигация. Значение атрибута ToRole должно быть таким же, что и значение одного из атрибутов Role, определенного для одной из конечных точек ассоциации (определенных в элементе AssociationEnd).

FromRole

Да

Конечная точка ассоциации с которой начинается навигация. Значение атрибута FromRole должно быть таким же, что и значение одного из атрибутов Role, определенного для одной из конечных точек ассоциации (определенных в элементе AssociationEnd).

Bb387104.note(ru-ru,VS.100).gifПримечание
К элементу NavigationProperty может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать.

Пример

В следующем примере определяется тип сущности (Book) с двумя свойствами навигации (PublishedBy и 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>

См. также

Основные понятия

Общие сведения о платформе Entity Framework
Спецификация языка CSDL
Элемент Schema (CSDL)

Другие ресурсы

Спецификации языка CSDL, SSDL и MSL
ADO.NET Entity Data Model Tools
navigation property (Entity Data Model)