Aracılığıyla paylaş


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 Persontüründeyse PersonEmployee, TREAT(p AS NamespaceName.Employee) genel Person bir örneği öğesine Employeeyayınlar; diğer bir ifadeyle p Employeeolarak 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 PersonEmployee . p değeri gerçekten türünde Employeedeğilse, ifade değerini nullverir.

Not

Belirtilen ifade Employee , belirtilen veri türünün bir alt türü Personveya 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 nulldö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)

Ayrıca bkz.