Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El elemento QueryView en EntitySetMapping define una asignación de sólo lectura entre una entidad en el modelo conceptual y una entidad en el modelo de almacenamiento en (EDM) Entity Data Model. Esta asignación de la vista de consulta se define con una consulta de Entity SQL que se evalúa con el modelo de almacenamiento y el conjunto de resultados se expresa en relación a una entidad en el modelo conceptual. Dado que las vistas de consulta son de sólo lectura, no puede utilizar los comandos de actualización estándar para actualizar los tipos que se definen mediante vistas de consulta. Puede realizar las actualizaciones de estos tipos utilizando funciones de modificación. Para obtener más información, vea Cómo asignar funciones de modificación a procedimientos almacenados.
Puede definir vistas de consulta para habilitar los escenarios siguientes:
Defina una entidad en el modelo conceptual que no incluya todas las propiedades de la entidad en el modelo de almacenamiento. Se incluyen las propiedades que no tienen valores predeterminados y no admiten valores null.
Asigne las columnas calculadas del modelo de almacenamiento a las propiedades de los tipos de entidad del modelo conceptual.
Defina una asignación en la que las condiciones utilizadas para dividir las entidades del modelo conceptual no se basen en la igualdad. Al especificar una asignación condicional mediante el elemento Condition, la condición proporcionada debe igualar el valor especificado. Para obtener más información, vea Elemento Condition (MappingFragment).
Asigne la misma columna en el modelo de almacenamiento a varios tipos en el modelo conceptual.
Asigne varios tipos a la misma tabla.
Defina asociaciones en el modelo conceptual que no se basen en claves externas en el esquema relacional.
Utilice la lógica de negocios personalizada para establecer el valor de las propiedades del modelo conceptual. Por ejemplo, podría asignar el valor de cadena "T" en el origen de datos a un valor de true, un valor Boolean, en el modelo conceptual.
Defina filtros condicionales para los resultados de la consulta.
Aplique menos restricciones en los datos del modelo conceptual que en el modelo de almacenamiento. Por ejemplo, podría hacer que una propiedad del modelo conceptual acepte valores NULL aun cuando la columna a la que está asignada no los admita.
Las consideraciones siguientes se aplican al definir las vistas de consulta para las entidades:
Las vistas de consulta son de solo lectura. Solo puede realizar las actualizaciones a las entidades utilizando las funciones de modificación.
Al definir un tipo de entidad mediante una vista de consulta, también debe definir todas las entidades relacionadas mediante vistas de consulta.
Al asignar una asociación varios a varios a una entidad en el modelo de almacenamiento que representa una tabla de vínculos del esquema relacional, debe definir un elemento QueryView en el elemento AssociationSetMapping para esta tabla de vínculos. Para obtener más información, vea Elemento QueryView (AssociationSetMapping).
Las vistas de consulta se deben definir para todos los tipos de una jerarquía de tipos. Puede hacer esto de las siguientes maneras:
Con un elemento QueryView único que especifica una consulta de Entity SQL única que devuelve una unión de todos los tipos de entidad en la jerarquía.
Con un elemento QueryView único que especifica una consulta de Entity SQL única que utiliza al operador CASE para devolver un tipo de entidad concreto de la jerarquía según una condición concreta.
Con un elemento QueryView adicional para un tipo específico en la jerarquía. En este caso, utilice el atributo TypeName del elemento QueryView para especificar el tipo de entidad para cada vista.
Al definir una vista de consulta, no puede especificar el atributo StorageSetName en el elemento EntitySetMapping.
Al definir una vista de consulta, el elemento EntitySetMapping tampoco puede contener asignaciones Property.
En el ejemplo siguiente se define una vista de consulta para el tipo de entidad Product en el modelo de AdventureWorks Sales.
<EntitySetMapping Name="Product">
<QueryView>
SELECT VALUE AdventureWorksModel.Product(P.ProductID,
P.Name, P.ProductNumber, P.Color, P.ListPrice, P.Size, P.Weight,
P.Style)
FROM Person.Product as P
</QueryView>
</EntitySetMapping>
Dado que la consulta sólo devuelve un subconjunto de los miembros del tipo Product en el modelo de almacenamiento, el tipo Product en el modelo AdventureWorks Sales se ha modificado según esta asignación de la forma siguiente:
<EntityType Name="Product">
<Key>
<PropertyRef Name="ProductID" />
</Key>
<Property Name="ProductID" Type="Int32" Nullable="false" />
<Property Name="Name" Type="String" Nullable="false" MaxLength="50" Unicode="true" FixedLength="false" />
<Property Name="ProductNumber" Type="String" Nullable="false" MaxLength="25" Unicode="true" FixedLength="false" />
<Property Name="Color" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
<Property Name="ListPrice" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
<Property Name="Size" Type="String" MaxLength="5" Unicode="true" FixedLength="false" />
<Property Name="Weight" Type="Decimal" Precision="8" Scale="2" />
<Property Name="Style" Type="String" MaxLength="2" Unicode="true" FixedLength="true" />
</EntityType>
El tipo Product del modelo de almacenamiento de ejemplo AdventureWorks Sales no se cambió para este ejemplo.
Vea también
Conceptos
Escenarios de asignación de Entity Data Model (escenarios de aplicación)
Elemento EntitySetMapping (MSL)