Элемент DefiningQuery (язык SSDL)
Элемент DefiningQuery языка SSDL позволяет выполнять инструкции SQL непосредственно в основной базе данных. Элемент DefiningQuery обычно используется как представление базы данных, но определенное в модели хранения, а не в базе данных. Представление, определенное в элементе DefiningQuery, может быть сопоставлено с типом сущности в концептуальной модели с использованием элемента EntitySetMapping. Такие сопоставления предназначены только для чтения. Дополнительные сведения см. в разделе How to: Add a Defining Query.
В следующем синтаксисе SSDL показана декларация EntitySet, за которым следует элемент DefiningQuery, содержащий запрос, применяемый для получения представления.
<Schema>
<EntitySet Name="Tables" EntityType="Self.STable">
<DefiningQuery>
SELECT TABLE_CATALOG,
'test' as TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
</DefiningQuery>
</EntitySet>
</Schema>
Хранимые процедуры можно использовать в Entity Framework для обеспечения возможности использования сценариев, выполняющих как чтение, так и запись, применительно к представлениям. В качестве базовой таблицы для выборки данных и обработки изменений с помощью хранимых процедур может использоваться представление источника данных или представление Entity SQL .
Элемент DefiningQuery может применяться для работы с Microsoft SQL Server Compact 3.5. Хотя SQL Server Compact 3.5 не поддерживает хранимые процедуры, аналогичную функциональность можно реализовать с помощью элемента DefiningQuery. Этот элемент также может быть полезен при создании хранимых процедур для преодоления несоответствий между типами данных, используемых в языке программирования, и типами данных источника данных. Можно создать элемент DefiningQuery, принимающий определенный набор параметров и затем вызывающий хранимую процедуру с другим набором параметров, например хранимую процедуру для удаления данных.
См. также
Основные понятия
Общие сведения о платформе Entity Framework
Спецификация языка SSDL
Другие ресурсы
Спецификации языка CSDL, SSDL и MSL
ADO.NET Entity Data Model Tools