Aracılığıyla paylaş


OFTYPE (Entity SQL)

Belirli bir türdeki sorgu ifadesinden bir nesne koleksiyonu döndürür.

Söz dizimi

OFTYPE ( expression, [ONLY] test_type )

Bağımsız değişkenler

expression Bir nesne koleksiyonu döndüren geçerli sorgu ifadeleri.

test_type Tarafından expression döndürülen her nesneyi test etmek için türü. Türün ad alanı tarafından nitelenmiş olması gerekir.

Dönüş Değeri

türünde bir test_typenesne koleksiyonu veya bir temel tür ya da türetilmiş türü test_type. YALNIZCA belirtilirse, yalnızca veya boş bir koleksiyonun test_type örnekleri döndürülür.

Açıklamalar

İfade, OFTYPE bir koleksiyonun her öğesinde bir tür testi gerçekleştirmek için verilen tür ifadesini belirtir. İfade, OFTYPE belirtilen türde yeni bir koleksiyon oluşturur ve yalnızca bu türe eşdeğer olan veya alt türü olan öğeleri içerir.

İfade OFTYPE , aşağıdaki sorgu ifadesinin kısaltmasıdır:

select value treat(t as T) from ts as t where t is of (T)

Yöneticinin Bir Çalışan alt türü olduğu göz önünde bulundurulduğunda, aşağıdaki ifade yalnızca bir çalışan koleksiyonundan yöneticiler koleksiyonu oluşturur:

OfType(employees, NamespaceName.Manager)

Tür filtresini kullanarak bir koleksiyonun yayınını oluşturmak da mümkündür:

OfType(executives, NamespaceName.Manager)

Tüm yöneticiler yönetici olduğundan, sonuçta elde edilen koleksiyon hala tüm özgün yöneticileri içerir, ancak koleksiyon artık bir yönetici koleksiyonu olarak yazıldı.

Aşağıdaki tabloda işlecin bazı desenler OFTYPE üzerindeki davranışı gösterilmektedir. Sağlayıcı çağrılmadan önce istemci tarafından tüm özel durumlar oluşturulur:

Desen Davranış
OFTYPE(Collection(EntityType), EntityType) Collection(EntityType)
OFTYPE(Collection(ComplexType), ComplexType) Atar
OFTYPE(Collection(RowType), RowType) Atar

Örnek

Aşağıdaki Entity SQL sorgusu, Course nesneleri koleksiyonundan OnsiteCourse nesneleri koleksiyonunu döndürmek için OFTYPE işlecini kullanır. Sorgu, Okul Modeli'ni temel alır.

SELECT onsiteCourse.Location FROM 
    OFTYPE(SchoolEntities.Courses, SchoolModel.OnsiteCourse) 
    AS onsiteCourse

Ayrıca bkz.