2007-09-06

Any

Mit Any-Operator können Sie ermitteln, ob das Resultat Ihrer Query Expression-Anweisung Daten beinhaltet. Dieser Operator liefert einen Boolean Wert zurück. Wenn das Resultat Daten beinhaltet liefert der Operator einen True-Wert sonst False-Wert zurück.
· False: Keine Daten vorhanden
· True: Daten vorhanden

Query Expression-Anweisung
Im folgenden Beispiel wird nach CounryRegion-Daten, welche bei denen der CountryRegionCode mit X beginnt, abgefragt. Anschliessend wird an die isCountryRegionExists Variable der Rückgabewert von Any-Operator zugewiesen.

IQueryable qry = from cr in _db.CountryRegions
where cr.CountryRegionCode.StartsWith("X")
select cr;

Der Any-Operator wird erst nach der Query Expression-Anweisung verwendet.

bool isCountryRegionsExists = qry.Any()

SQL-Anweisung
Die generierte SQL-Anweisung für den obigen Query Expression sieht wie folgt aus.
SELECT [t0].[CountryRegionCode], [t0].[Name], [t0].[ModifiedDate]
FROM [Person].[CountryRegion] AS [t0]
WHERE [t0].[CountryRegionCode] LIKE @p0
-- @p0: Input String (Size = 2; Prec = 0; Scale = 0) [X%]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.20706.1

Resultat
Weil in der Datenbanktabelle CountryRegion keine CountryRegionCode mit der Buchstabe X anfängt, werden auch keine Daten als Resultat zurück geliefert.
In diesem Fall gibt der Any-Operator einen False-Wert zurück, weil in dem Resultat keine Daten vorhanden sind.

No comments: