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


Элемент 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