Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Egy adott alaptípusú objektumot a megadott származtatott típus objektumaként kezel.
Szemantika
TREAT ( expression as type)
Érvek
expression Bármely érvényes lekérdezési kifejezés, amely egy entitást ad vissza.
Megjegyzés:
A megadott kifejezés típusának a megadott adattípus altípusának kell lennie, vagy az adattípusnak a kifejezés típusának altípusának kell lennie.
type Entitástípus. A típust névtérrel kell minősíteni.
Megjegyzés:
A megadott kifejezésnek a megadott adattípus altípusának kell lennie, vagy az adattípusnak a kifejezés altípusának kell lennie.
Visszaadott érték
A megadott adattípus értéke.
Megjegyzések
A TREAT a kapcsolódó osztályok közötti felcímkésítésre szolgál. Ha például abból Person származik, Employee és a p típusúPerson, TREAT(p AS NamespaceName.Employee) akkor egy általános Person példányt Employeead vissza ; vagyis lehetővé teszi a p mintaként Employeevaló kezelését.
A TREAT az öröklési forgatókönyvekben használatos, ahol az alábbihoz hasonló lekérdezéseket hajthat végre:
SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)
Ez a lekérdezés az entitásokat Person a Employee típusra szórja. Ha a p értéke valójában nem típus Employee, akkor a kifejezés az értéket nulladja meg.
Megjegyzés:
A megadott kifejezésnek Employee a megadott adattípus Personaltípusának kell lennie, vagy az adattípusnak a kifejezés altípusának kell lennie. Ellenkező esetben a kifejezés fordítási időt eredményez.
Az alábbi táblázat a kezelés viselkedését mutatja be néhány tipikus és néhány kevésbé gyakori mintán. A rendszer minden kivételt az ügyféloldalról ad ki, mielőtt a szolgáltató meghívja:
| Pattern | Magatartás |
|---|---|
TREAT (null AS EntityType) |
Visszatér DbNull. |
TREAT (null AS ComplexType) |
Kivételt jelez. |
TREAT (null AS RowType) |
Kivételt jelez/ |
TREAT (EntityType AS EntityType) |
Visszaadja EntityType vagy null. |
TREAT (ComplexType AS ComplexType) |
Kivételt jelez. |
TREAT (RowType AS RowType) |
Kivételt jelez. |
példa
Az alábbi Entity SQL-lekérdezés a TREAT operátorral konvertálja a Course típusú objektumot onsiteCourse típusú objektumok gyűjteményére. A lekérdezés az iskolai modellen alapul.
SELECT VALUE TREAT (course AS SchoolModel.OnsiteCourse)
FROM SchoolEntities.Courses AS course
WHERE course IS OF( SchoolModel.OnsiteCourse)