Поделиться через


Тип сущности (модель EDM)

В модели Entity Data Model (EDM) тип сущности EntityType является черновиком шаблона для типа данных в домене приложения. Декларация сущности схематически представляет определенный тип данных. Схема, не обремененная структурой таблицы или кодом, используется, чтобы указывать все сведения о типе данных. После завершения создания черновика на его базе строится программируемый тип данных.

В модели EDM тип сущности EntityType используется в бизнес-приложении, чтобы моделировать концепции высшего уровня, например клиент, заказ или поставщик. В языке CSDL каждая сущность определяется как некоторый тип сущности EntityType. После схематического определения типа сущности EntityType она становится действующей единицей в разработке приложения. Каждый тип сущности EntityType является концептуально независимым и имеет уникальный идентификатор.

Свойства и идентификатор сущности

Тип сущности EntityType в схеме имеет имя, свойства и свойство Key, которое идентифицирует тип данных во время создания его экземпляра в коде приложения.

Большая часть информации о типе сущности EntityType содержится в ее свойствах. Свойство — это данные типа сущности SimpleType или ComplexType модели EDM. Свойства являются однозначными, хотя тип NavigationProperty может использоваться с объектом Association для реализации свойства, функционирующего как коллекция элементов данных. Дополнительные сведения о свойствах навигации см. в разделе Свойства навигации (модель EDM) в модели EDM. Дополнительные сведения об ассоциациях см. в разделе Связи в модели EDM.

Свойства

Свойство добавляет сведения к типу сущности EntityType путем определения уникального имени для значения указанного типа данных. Определение свойства состоит из имени, а также типа и может содержать ограничения по доступу, выраженные с помощью атрибутов GetterAccess и SetterAccess. В качестве типа свойства выбирается один из типов, определяемых в модели EDM как SimpleType.

Значением всех свойств, за исключением тех, которые входят в состав свойства Key, может быть Null. В следующем примере показана декларация EntityType.

<EntityType Name="Person">
  <Key>
      <PropertyRef Name="EmailID"/>
  </Key>
  <Property Name="EmailID" Type="String" Nullable="false" />
  <Property Name="Name" Type="String" />
  <Property Name="Address" Type="String" />
  <Property Name="PhoneNumber" Type=" String"/>
</EntityType>

В этом примере свойство EmailID указано как свойство Key (ключ) в данной сущности. Ключ не может иметь значение Null, то есть экземпляр сущности Person должен иметь идентификатор электронной почты. Свойство Key используется для идентификации экземпляров данного типа в использующих его приложениях.

Ключ сущности

Тип сущности EntityType должен определить свойство Key, которое состоит из одного или нескольких свойств, заданных для этого типа. Любой набор свойств типа SimpleType может служить свойством Key. Ни одно из свойств, использованных в свойстве Key, не может иметь значение Null в коде приложения.

NoteПримечание.

Не рекомендуется использовать тип String в качестве свойства Key из соображений производительности и предсказуемости; смысл выражения str1 == str2 весьма неоднозначен.

В следующем примере демонстрируется назначение атрибута Key составному значению Key при помощи двух свойств SimpleType:

<EntityType Name="Person">
   <Key>
      <PropertyRef Name="ContactId" />
      <PropertyRef Name="Name" />
   </Key>
      <Property Name="ContactId" Type="String" Nullable="false" />
      <Property Name="Name" Type="String" Nullable="false" />
      <Property Name="PhoneNumber" Type="String" />
</EntityType>

См. также

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

Простые типы (модель EDM)
Сложный тип (модель EDM)
Типы модели EDM