CrossListQueryCache-Klasse

Verwaltet den Zwischenspeicher für die Cross-Listenabfrage.

Vererbungshierarchie

System.Object
  Microsoft.SharePoint.Publishing.CrossListQueryCache

Namespace:  Microsoft.SharePoint.Publishing
Assembly:  Microsoft.SharePoint.Publishing (in Microsoft.SharePoint.Publishing.dll)

Syntax

'Declaration
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public NotInheritable Class CrossListQueryCache
'Usage
Dim instance As CrossListQueryCache
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public sealed class CrossListQueryCache

Hinweise

Diese Klasse kann nicht geerbt werden. Diese Klasse-Caches, die Daten, die aus der Cross-Listenabfrage zurückgegeben und Zielgruppenadressierung auf das Ergebnis angewendet wird, festgelegt wird durch die VersionCrossListQueryInfo -Eigenschaft zurückgegeben.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie mit dem CrossListQueryCache -Objekt, Eigenschaften und Methoden. Dieser Code zeigt Daten im CrossListQueryCache -Objekt, ruft die Daten ab und speichert die Daten in eine neue vom Webpart für Inhaltsabfragen angezeigt.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint.Publishing;
using Microsoft.SharePoint.Publishing.WebControls;
using Microsoft.SharePoint;
using System.Web;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // GetSiteDataResults(Microsoft.SharePoint.SPSite,System.Boolean)
            ExampleOne();
            // GetSiteDataResults(Microsoft.SharePoint.SPSite,System.String,System.Boolean)
            ExampleTwo();
            //GetSiteDataResults(Microsoft.SharePoint.SPWeb,Microsoft.SharePoint.SPSiteDataQuery,System.Boolean)
            ExampleThree();
            // GetSiteDataResults(Microsoft.SharePoint.SPWeb,System.Boolean)
            ExampleFour();

        }


        //GetSiteDataResults(Microsoft.SharePoint.SPSite,System.Boolean)
        // Returns the results of the current query on the specified site.  The query will be run against
        // an SPList if useSpQueryOnList is set to true.  Otherwise the query will be run against a site or web

        // This version of GetSiteDataResults uses the web url in this object's CrossListQueryInfo to determine
        // either the web to query against or the web of the list being queried against depending on the value
        // of useSpQueryOnList.
        private static void ExampleOne()
        {
            using (SPSite site = new SPSite("http://adventure-works"))
            {
                //Get a CbqQueryVersionInfo object from a ContentByQueryWebPart and use it to get a CrossListQueryInfo
                ContentByQueryWebPart cbq = new ContentByQueryWebPart();
                CbqQueryVersionInfo versionInfo = cbq.BuildCbqQueryVersionInfo();
                CrossListQueryInfo queryInfo = versionInfo.VersionCrossListQueryInfo;
                // Create a new CrossListQueryCache object with the queryInfo we just got
                CrossListQueryCache crossListCache = new CrossListQueryCache(queryInfo);

                SiteDataResults results = crossListCache.GetSiteDataResults(site, false);
            }
        }


        // GetSiteDataResults(Microsoft.SharePoint.SPSite,System.String,System.Boolean)
        // Returns the results of the current query on the specified site.  The query will be run against
        // an SPList if useSpQueryOnList is set to true.  Otherwise the query will be run against a site or web

        // This version of GetSiteDataResults uses the webUrl parameter to determine
        // either the web to query against or the web of the list being queried against depending on the value
        // of useSpQueryOnList.
        private static void ExampleTwo()
        {
            using (SPSite site = new SPSite("http://adventure-works"))
            {
                //Get a CbqQueryVersionInfo object from a ContentByQueryWebPart and use it to get a CrossListQueryInfo
                ContentByQueryWebPart cbq = new ContentByQueryWebPart();
                CbqQueryVersionInfo versionInfo = cbq.BuildCbqQueryVersionInfo();
                CrossListQueryInfo queryInfo = versionInfo.VersionCrossListQueryInfo;
                // Create a new CrossListQueryCache object with the queryInfo we just got
                CrossListQueryCache crossListCache = new CrossListQueryCache(queryInfo);
                // GetSiteDataResults(Microsoft.SharePoint.SPSite,System.String,System.Boolean)
                SiteDataResults results = crossListCache.GetSiteDataResults(site, "/", false);
            }
        }


        //GetSiteDataResults(Microsoft.SharePoint.SPWeb,Microsoft.SharePoint.SPSiteDataQuery,System.Boolean)
        // Returns the results of the passed in query parameter on the specified web or list. The query will be run against
        // an SPList if useSpQueryOnList is set to true.  Otherwise the query will be run against a web

        // This version of GetSiteDataResults uses object's member SPSiteDataQuery
        private static void ExampleThree()
        {
            using (SPSite site = new SPSite("http://adventure-works"))
            {
                //Get a CbqQueryVersionInfo object from a ContentByQueryWebPart and use it to get a CrossListQueryInfo
                ContentByQueryWebPart cbq = new ContentByQueryWebPart();
                CbqQueryVersionInfo versionInfo = cbq.BuildCbqQueryVersionInfo();
                CrossListQueryInfo queryInfo = versionInfo.VersionCrossListQueryInfo;
                // Create a new CrossListQueryCache object with the queryInfo we just got
                CrossListQueryCache crossListCache = new CrossListQueryCache(queryInfo);
                // Use the cossListCache to create an SPSiteDataQuery
                SPSiteDataQuery query = new SPSiteDataQuery();
                query.Query = queryInfo.Query;
                query.Lists = queryInfo.Lists;
                if (queryInfo.RowLimit != UInt32.MaxValue)
                {
                    query.RowLimit = queryInfo.RowLimit;
                }
                query.ViewFields = queryInfo.ViewFields;
                query.Webs = queryInfo.Webs;
                SiteDataResults results;

                using (SPWeb web = site.OpenWeb("/"))
                {
                    //GetSiteDataResults(Microsoft.SharePoint.SPWeb,Microsoft.SharePoint.SPSiteDataQuery,System.Boolean)
                    results = crossListCache.GetSiteDataResults(web, query, false);
                }
            }
        }


        // GetSiteDataResults(Microsoft.SharePoint.SPWeb,System.Boolean)
        // Returns the results of the passed in query parameter on the specified web or list. The query will be run against
        // an SPList if useSpQueryOnList is set to true.  Otherwise the query will be run against a web

        // This version of GetSiteDataResults forgoes the object's member SPSiteDataQuery and uses the passed in SPSiteDataQuery
        private static void ExampleFour()
        {
            using (SPSite site = new SPSite("http://adventure-works"))
            {
                //Get a CbqQueryVersionInfo object from a ContentByQueryWebPart and use it to get a CrossListQueryInfo
                ContentByQueryWebPart cbq = new ContentByQueryWebPart();
                CbqQueryVersionInfo versionInfo = cbq.BuildCbqQueryVersionInfo();
                CrossListQueryInfo queryInfo = versionInfo.VersionCrossListQueryInfo;
                // Create a new CrossListQueryCache object with the queryInfo we just got
                CrossListQueryCache crossListCache = new CrossListQueryCache(queryInfo);
                SiteDataResults results;

                using (SPWeb web = site.OpenWeb("/"))
                {
                    // GetSiteDataResults(Microsoft.SharePoint.SPWeb,System.Boolean)
                    results = crossListCache.GetSiteDataResults(web, false);
                }
            }
        }
    }
}

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

CrossListQueryCache-Member

Microsoft.SharePoint.Publishing-Namespace

ContextUrl

GetSiteData