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_type
nesne 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