Share via


DefiningQuery (Elemento) (SSDL)

El elemento DefiningQuery del lenguaje de definición de esquemas de almacenamiento (SSDL) permite ejecutar una instrucción SQL directamente en la base de datos subyacente. El elemento DefiningQuery se utiliza normalmente como una vista de base de datos, pero la vista se define en el modelo de almacenamiento en lugar de la base de datos. La vista definida en un elemento DefiningQuery puede estar asignada a un tipo de entidad del modelo conceptual a través de un elemento EntitySetMapping. Estas asignaciones son de solo lectura. Para obtener más información, vea How to: Add a Defining Query.

La sintaxis de SSDL siguiente muestra la declaración de un EntitySet seguida por el elemento DefiningQuery que contiene una consulta usada para recuperar la vista.

<Schema> 
    <EntitySet Name="Tables" EntityType="Self.STable"> 
        <DefiningQuery> 
          SELECT  TABLE_CATALOG, 
                  'test' as TABLE_SCHEMA, 
                  TABLE_NAME 
          FROM    INFORMATION_SCHEMA.TABLES
        </DefiningQuery> 
    </EntitySet> 
</Schema>

Puede utilizar procedimientos almacenado en Entity Framework para permitir el uso de escenarios de lectura y escritura sobre vistas. Se puede usar una vista del origen de datos o una vista de Entity SQL como tabla base para recuperar datos y para el procesamiento de los cambios llevados a cabo por los procedimientos almacenados.

Puede utilizar el elemento DefiningQuery en el caso de Microsoft SQL Server Compact 3.5. Aunque SQL Server Compact 3.5 no admite procedimientos almacenados, puede implementar una funcionalidad similar con el elemento DefiningQuery. Otro caso donde puede ser útil es en la creación de procedimientos almacenados para resolver una desigualdad entre los tipos de datos utilizados en el lenguaje de programación y los del origen de datos. Podría escribir un elemento DefiningQuery que toma un cierto conjunto de parámetros y, a continuación, llama a un procedimiento almacenado con un conjunto diferente de parámetros; por ejemplo, un procedimiento almacenado que elimina datos.

Vea también

Conceptos

Información general de Entity Framework
Especificación SSDL

Otros recursos

Especificaciones CSDL, SSDL y MSL
ADO.NET Entity Data Model Tools