Abfragen: Abrufen von Informationen von einer Datenquelle

 

Veröffentlicht: Juli 2016

Die neueste Dokumentation zu Visual Studio 2017 RC finden Sie unter Visual Studio 2017 RC Documentation (Dokumentation zu Visual Studio 2017 RC).

Verwenden Sie eine Abfrage, um Daten zurückzugeben, die einen Satz von Kriterien erfüllen. Wenn Sie z. B. wissen möchten, wie viele Ihrer Kunden in den USA leben, erstellen Sie eine Abfrage, die eine Liste von Kunden durchsucht und das in der Adresse angegebene Land bzw. die Region überprüft.

Sie können Abfragen erstellen und im Modell der Anwendung speichern. Anschließend können Sie die gewünschten Suchkriterien mithilfe des Abfrage-Designers angeben. Falls der Abfrage-Designer die benötigte Funktionalität nicht bietet, können Sie die Abfragen durch das Schreiben von Code erweitern. Wenn Sie die Kriterien angegeben haben, können die Abfragen in einem Bildschirm verarbeitet und im Rahmen der Geschäftslogik genutzt werden.

Sie können Abfragen im Projektmappen-Explorer erstellen. Eine Abfrage basiert nur auf einer Entität oder Tabelle im Modell der Anwendung (z. B. auf einer Customer-Entität). Eine Abfrage kann auch auf anderen Abfragen im Modell der Anwendung basieren. Die Entität, Tabelle oder Abfrage, auf der die Abfrage basiert, wird als Quelle der Daten für die Abfrage bezeichnet. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen, Entfernen und Ändern einer Abfrage.

In den meisten Fällen können Sie eine Abfrage visuell mit dem Abfrage-Designer entwerfen. Fügen Sie einer Abfrage Filterbedingungen und Filtergruppen sowie Sortierbegriffe und Parameter hinzu, indem Sie eine entsprechende Auswahl im Designer treffen. Weitere Informationen finden Sie unter Gewusst wie: Entwerfen einer Abfrage mithilfe des Abfrage-Designers.

Filterbedingungen

Sie können die Ergebnisse einer Abfrage eingrenzen, indem Sie eine oder mehrere Filterbedingungen hinzufügen. Eine Filterbedingung beschreibt eine Regel, die von jeder Datenzeile erfüllt werden muss. Zeilen, die dieser Regel entsprechen, sind in den Abfrageergebnissen enthalten. Eine Filterbedingung enthält die folgenden drei grundlegenden Bestandteile:

  • Auswahleigenschaft

  • Vergleichswert

  • Operator

Eine Auswahleigenschaft ist die Eigenschaft, die als Basis der Filterbedingung verwendet werden soll. Um Aufträge zurückzugeben, die ein bestimmtes Bestelldatum haben, könnten Sie z. B. OrderDate als Auswahleigenschaft verwenden. Eine Auswahleigenschaft kann eine Eigenschaft in den Quelldaten oder eine Eigenschaft in einer verwandten Entität oder Tabelle sein. Im Abfrage-Designer werden nur Eigenschaften für verwandte Entitäten oder Tabellen angezeigt, die eine Multiplizität von null (0) oder eins aufweisen. Beispielsweise weist ein Auftrag nur einen Kunden auf. Daher können Sie in einer Abfrage, die Aufträge zurückgibt, die Eigenschaften des jeweiligen Kunden als Teil einer Filterbedingung auswählen. Wenn Sie eine Eigenschaft in einer verwandten Entität oder Tabelle verwenden möchten, die eine n-Multiplizität aufweist, müssen Sie die Abfrage mit Code erweitern.

Der Vergleichswert wird mit der Auswahleigenschaft verglichen. Ein Vergleichswert kann ein Literalwert wie "22.9.2009 12:00 Uhr", eine Auswahleigenschaft, ein Parameter oder ein relativer Wert wie Jetzt, Heute oder Wochenanfang sein.

Ein Operator ist ein Symbol, das den Typ des Vergleichs angibt, der durchgeführt werden soll. Um Aufträge mit einem Bestelldatum kleiner als "22.9.2009 12:00 Uhr" zurückzugeben, wählen Sie beispielsweise den Operator "<" aus.

Die vollständige in diesem Beispiel beschriebene Filterbedingung lautet Where OrderDate < 9/22/2009 12:00:00 AM.

Sie können eine Filterbedingung mit einem der folgenden logischen Operatoren mit anderen Filterbedingungen verknüpfen: And, Or, And Not, Or Not.

Sie können die Reihenfolge von Bedingungen ändern, indem Sie diese an die gewünschten Positionen im Designer ziehen.

Die folgende Abbildung zeigt die Bestandteile einer Filterbedingung.

Filterbedingungen in einer Abfrage

Filtergruppen

Sie können Filterbedingungen gruppieren, damit sie als Einheit und unabhängig vom Rest der Filterbedingungen ausgewertet werden. Erstellen Sie dazu im Abfrage-Designer eine Filtergruppe.

Das Gruppieren von Filterbedingungen ähnelt dem Einschließen eines Ausdrucks in Klammern in einer mathematischen Formel oder Logikanweisung. Wenn Sie Bedingungen gruppieren, gilt der logische Operator vor der ersten Bedingung in einer Gruppe für die ganze Gruppe.

Analog zu einzelnen Filterbedingungen können Sie die Reihenfolge von Filtergruppen ändern, indem Sie diese an die gewünschte Position im Designer ziehen.

Die folgende Abbildung zeigt zwei Filtergruppen.

Filtergruppen in einer Abfrage

Sortierbegriffe

Sie können die Standardreihenfolge angeben, in der Datensätze in den Ergebnissen einer Abfrage angezeigt werden, indem sie einen oder mehrere Sortierbegriffe hinzufügen. Ein Sortierbegriff enthält eine Eigenschaft und eine Richtung (z. B. OrderDate und Ascending). Sortierbegriffe definieren die Standardsortierreihenfolge von Datensätzen, die in einem Bildschirm angezeigt werden. Benutzer können Datensätze in einer anderen Reihenfolge anzeigen, indem sie auf der Benutzeroberfläche des Bildschirms eine Auswahl treffen. Im Abfrage-Designer können Sie die Reihenfolge von Sortierbegriffen ändern, indem Sie die einzelnen Elemente an die gewünschte Position ziehen.

Parameter

Sie können es Benutzern ermöglichen, Abfrageergebnisse dynamisch zu filtern. Beispielsweise können Sie einem Benutzer ermöglichen, regionale Aufträge anzuzeigen, indem bestimmte Vertriebsgebiete auf dem Bildschirm ausgewählt werden können. Um dieses Szenario zu unterstützen, fügen Sie einer Abfrage einen Parameter hinzu und weisen der Abfrage einen aussagekräftigen Namen zu (z. B. SalesTerritory). Legen Sie dann den Vergleichswert eines Filters für den Parameter fest. Der Abfrageausdruck kann beispielsweise wie folgt lauten: Where TerritoryID = SalesTerritory.

Sie können Bildschirme entwerfen, die es Benutzern ermöglichen, zur Laufzeit den Parameterwert bereitzustellen. Weitere Informationen finden Sie unter Gewusst wie: Bereitstellen eines Werts für einen Abfrageparameter.

Einige Typen von Filterbedingungen werden vom Abfrage-Designer nicht unterstützt. Wenn Sie im Designer auf eine Einschränkung stoßen, können Sie der Abfrage mithilfe von Code Bedingungen hinzufügen.

System_CAPS_ICON_note.jpg Hinweis

Sie können die Abfrage eines Bildschirms nicht erweitern. Sie können nur Abfragen erweitern, die im Projektmappen-Explorer angezeigt werden. Weitere Informationen zum Bearbeiten der Abfrage für einen Bildschirm finden Sie unter Gewusst wie: Filtern von Daten auf einem Silverlight-Bildschirm.

In der folgenden Tabelle werden zwei Filterbedingungen angezeigt, die Sie nicht mit dem Abfrage-Designer erstellen können.

FilterbedingungGründe für die Verwendung von Code
Gibt die zehn besten Kunden anhand der Anzahl von Aufträgen zurück.Sie müssen die Anzahl von Aufträgen mithilfe des Vorgangs Count bestimmen. Vorgänge wie Count, Aggregate und Sum sind im Abfrage-Designer nicht verfügbar.
Gibt alle Kunden zurück, die eine Schubkarre gekauft haben.Um zu ermitteln, ob ein Kunde eine Schubkarre gekauft hat, müssen Sie eine Filterbedingung verwenden, die auf eine Product-Entität verweist. Da ein Kunde mehreren Produkten zugeordnet sein kann, befindet sich die Product-Entität meist auf der n-Seite einer Customer/Product-Beziehung. Der Abfrage-Designer ermöglicht keine Navigation auf die n-Seite einer Beziehung.

Um diese Einschränkung aufzulösen, können Sie benutzerdefinierten Code einer Methode hinzufügen, die bei der Ausführung der Abfrage aufgerufen wird. Weitere Informationen finden Sie unter Gewusst wie: Erweitern einer Abfrage mithilfe von Code.

Im Code können Sie Filterbedingungen mit LINQ-Standardsyntax definieren. Wenn die Abfrage ausgeführt wird, werden die von Ihnen im Designer definierten Bedingungen mit den Bedingungen kombiniert, die Sie im Code definieren, um das Abfrageergebnis zu erzeugen.

Bedingungen, die Sie im Code definieren, werden im Abfrage-Designer nicht als Filterbedingungen angezeigt. Auch Filterbedingungen, die Sie mit dem Abfrage-Designer hinzufügen, werden nicht in der Methode angezeigt. Verwenden Sie ausschließlich den Abfrage-Designer, um einer Abfrage einen Parameter hinzuzufügen. Parameter, die Sie mit dem Abfrage-Designer hinzufügen, werden in der Parameterliste der Methode angezeigt.

Sie können eine Abfrage in einem Bildschirm verarbeiten oder als Teil eines Geschäftsvorgangs ausführen.

Verarbeiten einer Abfrage in einem Bildschirm

Sie können einen Bildschirm erstellen, der auf einer benutzerdefinierten Abfrage basiert (z. B. einen Bildschirm mit einer Liste von Kunden in den USA). Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Silverlight-Bildschirms.

Sie können einem Bildschirm mehrere Abfragen hinzufügen. Sie können beispielsweise eine Abfrage entwerfen, die eine Liste der Aufträge für einen bestimmten Kunden anzeigt. Diese Abfrage können Sie dem Bildschirm für den Kunden hinzufügen. Anschließend können Sie es Benutzern ermöglichen, einen Kunden auszuwählen, um alle verwandten Aufträge anzuzeigen. Weitere Informationen hierzu finden Sie unter Gewusst wie: Bereitstellen eines Werts für einen Abfrageparameter.

Verarbeiten einer Abfrage in Code

Sie können Abfragen aus dem Modell der Anwendung abrufen und dann in Code ausführen. Dies ermöglicht es Ihnen, in der Geschäftslogik der Anwendung mit gezielten Auflistungen von Daten zu arbeiten. Weitere Informationen finden Sie unter Gewusst wie: Abrufen von Daten aus einer Abfrage mithilfe von Code.

TitelBeschreibung
Gewusst wie: Hinzufügen, Entfernen und Ändern einer AbfrageErläutert das Hinzufügen von Abfragen in der Benutzeroberfläche von Visual Studio LightSwitch.
Gewusst wie: Entwerfen einer Abfrage mithilfe des Abfrage-DesignersBeschreibt, wie die Filterbedingungen, Parameter und Sortierbegriffe einer Abfrage mit einem visuellen Designer definiert werden.
Gewusst wie: Bereitstellen eines Werts für einen AbfrageparameterBeschreibt, wie Benutzer einen Wert für einen Abfrageparameter bereitstellen können.
Gewusst wie: Erweitern einer Abfrage mithilfe von CodeBeschreibt, wie eine Abfrage zusätzlich zu den Funktionen des Designers geändert werden kann.
Gewusst wie: Behandlung von AbfrageereignissenBeschreibt, wie Ereignisse verarbeitet werden, die vor und nach dem Ausführen einer Abfrage auftreten.
Gewusst wie: Abrufen von Daten aus einer Abfrage mithilfe von CodeBeschreibt, wie eine Abfrage mit Code abgerufen und ausgeführt werden kann.
Erläuterung: Abfrage-Designer-EigenschaftenBeschreibt die Eigenschaften von Abfragen und Abfrageelementen. Sie können die Werte dieser Eigenschaften im Eigenschaftenfenster festlegen.
Anzeigen: