Сценарии сопоставления платформы Entity Framework

Платформа Entity Framework поддерживает различные способы сопоставления концептуальных моделей с реляционными данными. Дополнительные сведения см. в разделе Моделирование и сопоставление (платформа Entity Framework).

В настоящее время платформа Entity Framework поддерживает следующие сценарии сопоставления.

Сценарий сопоставления Описание

Простое сопоставление

В этом сценарии сопоставления каждая сущность концептуальной модели сопоставляется с одной таблицей модели хранения. Такое сопоставление формируется средствами модели EDM по умолчанию. Дополнительные сведения см. в разделе Краткое руководство (платформа Entity Framework).

Разбиение сущностей

В этом сценарии сопоставления свойства одной сущности концептуальной модели сопоставляются со столбцами двух и более базовых таблиц. В этом случае таблицы должны совместно использовать общий первичный ключ. Дополнительные сведения см. в разделах Walkthrough: Mapping and Entity to Multiple Tables и Как определить модель с одной сущностью, сопоставленной с двумя таблицами.

Горизонтальное секционирование в концептуальной модели

В этом сценарии сопоставления несколько типов сущности концептуальной модели, имеющих одинаковые свойства, сопоставляются с одной таблицей. Для указания того, какие данные в таблице принадлежат каждому из типов сущностей, используется предложение условия. Такое сопоставление напоминает сопоставление наследования типа «одна таблица на иерархию». Дополнительные сведения см. в разделе Как определить модель с наследованием типа «одна таблица на иерархию».

Наследование типа «одна таблица на иерархию»

В этом сценарии сопоставления все типы иерархии наследования сопоставляются с единственной таблицей. Для определения типов сущностей используется предложение условия. Дополнительные сведения см. в разделах Walkthrough: Mapping Inheritance - Table-per-Hierarchy и Как определить модель с наследованием типа «одна таблица на иерархию» (платформа Entity Framework).

Наследование типа «одна таблица на тип»

В этом сценарии сопоставления все типы сопоставляются с отдельными таблицами. Как свойства базового типа, так и свойства производного типа хранятся в таблице, сопоставленной с этим типом. Дополнительные сведения см. в разделах Walkthrough: Mapping Inheritance - Table-per-Type и Как определить модель с наследованием «одна таблица на тип» (платформа Entity Framework).

Наследование типа «одна таблица на конкретный тип»

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

Несколько наборов сущностей на тип

В этом сценарии сопоставления один тип сущности выражается двумя и более отдельными наборами сущностей концептуальной модели. Каждый набор сущностей сопоставляется с отдельной таблицей в модели хранения. Дополнительные сведения см. в разделе Как определить модель с несколькими наборами сущностей для типа (платформа Entity Framework).

Сложные типы

Сложный тип — это нескалярное свойство типа сущности, которое не имеет свойства ключа. Сложный тип может содержать другие вложенные сложные типы. Сложные типы сопоставляются с таблицами в модели хранения. Дополнительные сведения см. в разделе How to: Create and Modify Complex Types.

Сопоставление импорта функций

В этом сценарии хранимая процедура модели хранения сопоставляется с элементом FunctionImport концептуальной модели. В результате выполнения этой функции данные сущности возвращаются сопоставленной хранимой процедурой. Дополнительные сведения см. в разделах How to: Import a Stored Procedure и Как определить модель с помощью хранимой процедуры (платформа Entity Framework).

Сопоставление функций изменения

В этом сценарии определяются хранимые процедуры модели хранения для вставки, обновления и удаления данных. Эти функции определяются для типа сущности и обеспечивают возможность обновления данных для определенных типов сущностей. Дополнительные сведения см. в разделах Walkthrough: Mapping and Entity to Stored Procedures и Как определить модель с хранимыми процедурами модификации (платформа Entity Framework).

Определение сопоставления запроса

В этом сценарии определяется запрос модели хранения, который представляет таблицу в источнике данных. Этот запрос выражается на собственном языке запросов источника данных, таком как Transact-SQL, при сопоставлении с базой данных SQL Server. Элемент DefiningQuery сопоставляется с типом сущности концептуальной модели. Запрос определяется на языке запросов хранилища данных. Дополнительные сведения см. в разделе How to: Add a Defining Query. Если используется определяющий запрос, то обновления не могут быть сохранены в источнике данных при помощи стандартного процесса обновления. Обновления необходимо выполнять путем определения сопоставлений функций изменения.

Сопоставление представления запроса

В этом сценарии определяется сопоставление только для чтения между типами сущностей концептуальной модели и реляционными таблицами модели хранения. Для этого сопоставления определяется запрос Entity SQL к модели хранения, возвращающий сущности концептуальной модели. Дополнительные сведения см. в разделе Элемент QueryView (язык MSL). Если используется представление запроса, то обновления не могут быть сохранены в источнике данных при помощи стандартного процесса обновления. Обновления необходимо выполнять путем определения сопоставлений функций изменения.

Сопоставление AssociationSet

Ассоциации определяют взаимосвязи между сущностями. При простом сопоставлении с ассоциацией «один к одному» или «один ко многим» те ассоциации, которые определяют связи концептуальной модели, сопоставляются с ассоциациями модели хранения. Поддерживаются также следующие расширенные сопоставления наборов ассоциаций.

  • Ассоциации «многие ко многим». Оба элемента ассоциации сопоставляются с одной из связанных таблиц в модели хранения.

  • Самоассоциация. Поддерживает ассоциации между двумя сущностями одного и того же типа, например, ассоциации одной сущности Employee с другой.

Дополнительные сведения см. в разделе Элемент Association (язык CSDL).

Сведения о сценариях сопоставления, поддерживаемых средствами модели EDM, см. в разделе ADO.NET Entity Data Model Designer.

См. также

Задачи

Как определить модель и файлы сопоставления вручную (платформа Entity Framework)

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

Ресурсы платформы Entity Framework
Работа с объектами (платформа Entity Framework)

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

Определение расширенных моделей данных (задачи платформы Entity Framework)
ADO.NET Entity Data Model Designer
Определение расширенных моделей данных (задачи платформы Entity Framework)
Образцы (платформа Entity Framework)