Abfragen mit serverseitigem Code
Letzte Änderung: Dienstag, 2. Februar 2010
Gilt für: SharePoint Foundation 2010
Inhalt dieses Artikels
Abfragen mithilfe von CAML und SPQuery
Abfragen mithilfe des LINQ to SharePoint-Anbieters
CAML und LINQ
Dieses Thema bietet eine Übersicht über die Unterschiede zwischen den beiden Methoden zum Abfragen von Microsoft SharePoint Foundation-Daten in serverseitigem Code.
Abfragen mithilfe von CAML und SPQuery
Mithilfe des regulären Serverobjektmodells können Sie jede Art von SharePoint Foundation-Daten, einschließlich Nicht-Listendaten, abfragen. Die wichtigste Klasse für das Abfragen ist SPQuery. Ein Teil der in Collaborative Application Markup Language (CAML) geschriebenen Abfragen wird den Eigenschaften Query, Joins, ProjectedFields und ViewFields eines SPQuery-Objekts zugewiesen. Das Objekt wird dann an eine Methode wie z. B. SPList.GetItems() übergeben, von der die abgefragten Elemente zurückgegeben werden.
Beispiele hierzu finden Sie unter Arbeiten mit Listenobjekten und Auflistungen und Gewusst wie: Zurückgeben von Elementen aus einer Liste.
Abfragen mithilfe des LINQ to SharePoint-Anbieters
Mit dem LINQ to SharePoint -Anbieter können Sie nur SharePoint Foundation-Listendaten abfragen. Abfragen schreiben Sie in LINQ-Syntax und weisen die Ergebnisse einem Rückgabeobjekt zu. Die Abfrage wird das erste Mal ausgeführt, wenn das Rückgabeobjekt aufgezählt wird. Zu diesem Zeitpunkt wird die Abfrage vom LINQ to SharePoint-Anbieter in eine CAML-Abfrage übersetzt und anschließend wie jede andere CAML-Abfrage verarbeitet. Weitere Informationen finden Sie in den Themen unter Verwalten von Daten mit LINQ to SharePoint.
CAML und LINQ
Der wichtigste Vorteil von CAML-Abfragen ist ein eventueller Leistungsvorteil, da die Abfrage nicht von LINQ-Syntax in CAML-Syntax übersetzt werden muss.
Dies sind die wichtigsten Vorteile der Verwendung von LINQ-Abfragen:
Sie können LINQ-Syntax und die in C# und Microsoft Visual Basic integrierten LINQ-Schlüsselwörter verwenden. CAML-XML ist dagegen fehleranfällig und kann nur mit SharePoint Foundation verwendet werden.
Mit dem LINQ to SharePoint-Anbieter arbeiten Sie mit stark typisierten Listenelementobjekten. Im SharePoint Foundation-Clientobjektmodell weisen zwei beliebige SPListItem-Objekte denselben Typ auf, selbst wenn sie Elemente aus komplett unterschiedlichen Listentypen darstellen. Der LINQ to SharePoint-Anbieter verwendet jedoch Entitätsklassen, einschließlich einer Klasse für jeden Inhaltstyp, der in einer beliebige Liste in einer Website verwendet wird. Beispielsweise ist ein Element in der Liste Ankündigungen ein Objekt vom Typ Ankündigung, und ein Element in der Liste Aufgaben ist ein Objekt vom Typ Aufgabe.