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.
Trata un objeto de un tipo base determinado como un objeto del tipo derivado especificado.
TREAT ( expression as type)
Argumentos
expression
Cualquier expresión de consulta válida que devuelve una entidad.Nota:
El tipo de la expresión especificada debe ser un subtipo del tipo de datos especificado, o el tipo de datos debe ser un subtipo del tipo de expresión.
type
Tipo de entidad. El tipo debe estar calificado por un espacio de nombres.Nota:
La expresión especificada debe ser un subtipo del tipo de datos especificado, o el tipo de datos debe ser un subtipo de la expresión.
Valor devuelto
Un valor del tipo de datos especificado.
Notas
TREAT se utiliza para realizar una conversión entre clases relacionadas. Por ejemplo, si Employee deriva de Person y p es de tipo Person, TREAT(p AS NamespaceName.Employee)
convierte una instancia de Person genérica a Employee; es decir, permite tratar p como Employee.
TREAT se utiliza en situaciones de herencia donde se puede realizar una consulta como la siguiente:
SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)
Este consulta convierte entidades Person al tipo Employee. Si el valor de p no es realmente de tipo Employee, la expresión obtiene el valor null.
![]() |
---|
La expresión Employee especificada debe ser un subtipo del tipo de datos Person especificado, o el tipo de datos debe ser un subtipo de la expresión.De lo contrario, la expresión producirá un error en tiempo de compilación.
|
En la tabla siguiente se muestra el comportamiento del tratamiento en algunos patrones típicos y algunos patrones menos comunes. Todas las excepciones se producen en el cliente antes de que se llame al proveedor:
Patrón | Comportamiento |
---|---|
|
Devuelve DbNull. |
|
Produce una excepción. |
|
Produce una excepción. |
|
Devuelve EntityType o null. |
|
Produce una excepción. |
|
Produce una excepción. |
Ejemplo
La consulta de Entity SQL siguiente usa el operador TREAT para convertir un objeto del tipo Course en una colección de objetos del tipo OnsiteCourse. La consulta se basa en el Modelo School.
SELECT VALUE TREAT (course as SchoolModel.OnsiteCourse)
FROM SchoolEntities.Courses as course
WHERE course IS OF( SchoolModel.OnsiteCourse)
Vea también
Conceptos
Referencia de Entity SQL
Tipos estructurados que admiten valores NULL (Entity SQL)