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


Сценарии сопоставления модели EDM (сценарии приложений)

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

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

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

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

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

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

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

Горизонтальное секционирование в модели хранения

В этом сценарии сопоставления один тип сущности концептуальной модели сопоставляется с двумя и более таблицами в одной и той же схеме. Сущность сопоставляется с таблицами на основе условия, определенного в концептуальной модели. Например, логическое свойство OnlineOrderFlag сущности SalesOrderHeader в модели AdventureWorks Sales может использоваться для секционирования данных сущности в источнике данных на две таблицы, одна из которых содержит заказы, принятые в оперативном режиме, а вторая — в автономном режиме. Дополнительные сведения см. в разделе Элемент Condition (MappingFragment).

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

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

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

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

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

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

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

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

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

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

Сложные типы

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

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

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

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

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

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

В этом сценарии определяется запрос модели хранения, который представляет таблицу в источнике данных. Этот запрос выражается на собственном языке запросов источника данных, таком как Transact-SQL, при сопоставлении с базой данных SQL Server. Элемент DefiningQuery сопоставляется с типом сущности концептуальной модели. Запрос определяется на языке запросов хранилища данных. Дополнительные сведения см. в разделе Элемент DefiningQuery (EntityContainer, язык SSDL). Если используется определяющий запрос, то обновления не могут быть сохранены в источнике данных при помощи стандартного процесса обновления. Обновления необходимо выполнять путем определения сопоставлений функций изменения. Дополнительные сведения см. в разделе Поддержка хранимых процедур (платформа Entity Framework).

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

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

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

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

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

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

  • Ассоциации между производными типами. Это сопоставление поддерживает ассоциацию между производным типом в одной иерархии и производным типом в другой иерархии.

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

Сведения о сценариях сопоставления, поддерживаемых средствами модели EDM, см. в разделе Общие сведения о конструкторе моделей EDM ADO.NET.

См. также

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

Наследование в модели EDM (сценарии приложений)
Ресурсы платформы Entity Framework
Запрос к модели EDM (сценарии приложений)
Программирование классов модели EDM (сценарии приложений)
Определение модели EDM (сценарии приложений)

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

Руководство по программированию (платформа Entity Framework)
Образцы (платформа Entity Framework)