TREAT (Entity SQL)
Belirli bir temel türdeki bir nesneyi, belirtilen türetilmiş türün nesnesi olarak işler.
Söz dizimi
TREAT ( expression as type)
Bağımsız değişkenler
expression
Bir varlık döndüren geçerli sorgu ifadeleri.
Not
Belirtilen ifadenin türü, belirtilen veri türünün bir alt türü veya veri türü ifade türünün alt türü olmalıdır.
type
Varlık türü. Türün ad alanı tarafından nitelenmiş olması gerekir.
Not
Belirtilen ifade, belirtilen veri türünün bir alt türü veya veri türü ifadenin alt türü olmalıdır.
Dönüş Değeri
Belirtilen veri türünün değeri.
Açıklamalar
TREAT, ilgili sınıflar arasında yukarı yayın gerçekleştirmek için kullanılır. Örneğin, ve p Person
türündeyse Person
Employee
, TREAT(p AS NamespaceName.Employee)
genel Person
bir örneği öğesine Employee
yayınlar; diğer bir ifadeyle p Employee
olarak işlem yapmanızı sağlar.
TREAT, aşağıdaki gibi bir sorgu yapabileceğiniz devralma senaryolarında kullanılır:
SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)
Bu sorgu varlıkları türüne yukarı yayınlar Person
Employee
. p değeri gerçekten türünde Employee
değilse, ifade değerini null
verir.
Not
Belirtilen ifade Employee
, belirtilen veri türünün bir alt türü Person
veya veri türü ifadenin alt türü olmalıdır. Aksi takdirde, ifade bir derleme zamanı hatasına neden olur.
Aşağıdaki tabloda, bazı tipik desenler ve bazı daha az yaygın desenler üzerinde davranış gösterilmektedir. Sağlayıcı çağrılmadan önce istemci tarafından tüm özel durumlar oluşturulur:
Desen | Davranış |
---|---|
TREAT (null AS EntityType) |
DbNull döndürür. |
TREAT (null AS ComplexType) |
Özel durum oluşturur. |
TREAT (null AS RowType) |
Özel durum oluşturur/ |
TREAT (EntityType AS EntityType) |
veya null döndürürEntityType . |
TREAT (ComplexType AS ComplexType) |
Özel durum oluşturur. |
TREAT (RowType AS RowType) |
Özel durum oluşturur. |
Örnek
Aşağıdaki Entity SQL sorgusu, Course türünde bir nesneyi OnsiteCourse türünde bir nesne koleksiyonuna dönüştürmek için TREAT işlecini kullanır. Sorgu, Okul Modeli'ni temel alır.
SELECT VALUE TREAT (course AS SchoolModel.OnsiteCourse)
FROM SchoolEntities.Courses AS course
WHERE course IS OF( SchoolModel.OnsiteCourse)