SqlDataSource.CacheExpirationPolicy Eigenschaft

Definition

Ruft das Cacheablaufverhalten ab, das in Kombination mit der Dauer das Verhalten des vom Datenquellen-Steuerelement verwendeten Caches beschreibt.Gets or sets the cache expiration behavior that, when combined with the duration, describes the behavior of the cache that the data source control uses.

public:
 virtual property System::Web::UI::DataSourceCacheExpiry CacheExpirationPolicy { System::Web::UI::DataSourceCacheExpiry get(); void set(System::Web::UI::DataSourceCacheExpiry value); };
public virtual System.Web.UI.DataSourceCacheExpiry CacheExpirationPolicy { get; set; }
member this.CacheExpirationPolicy : System.Web.UI.DataSourceCacheExpiry with get, set
Public Overridable Property CacheExpirationPolicy As DataSourceCacheExpiry

Eigenschaftswert

Einer der DataSourceCacheExpiry-Werte.One of the DataSourceCacheExpiry values. Der Standardwert ist der Absolute-Wert.The default is the Absolute value.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Daten aus der Northwind-Datenbank in Microsoft SQL Server abgerufen und in einem GridView -Steuerelement angezeigt werden, wobei das Zwischenspeichern von Daten aktiviert ist.The following code example demonstrates how to retrieve data from the Northwind database in Microsoft SQL Server and display it in a GridView control, with data caching enabled. Da die CacheExpirationPolicy -Eigenschaft auf den Sliding -Wert festgelegt ist, werden den Benutzern keine neuen Daten CacheDuration angezeigt, auch wenn der Wert 20 Sekunden beträgt.Because the CacheExpirationPolicy property is set to the Sliding value, users will not see fresh data even though the CacheDuration value is 20 seconds. Die zwischengespeicherten Daten werden nur aktualisiert, wenn seit dem letzten Laden der Seite keine Aktivität mehr als 20 Sekunden auf der Seite vorhanden ist.The cached data is refreshed only if there is no activity on the page for more than 20 seconds since the last page load.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                EnableCaching="True"
                CacheDuration="20"
                CacheExpirationPolicy="Sliding"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
            </asp:SqlDataSource>

            <asp:GridView
                id="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataSourceID="SqlDataSource1">
                <columns>
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                    <asp:BoundField HeaderText="Title" DataField="Title" />
                </columns>
            </asp:GridView>

        </form>
    </body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                EnableCaching="True"
                CacheDuration="20"
                CacheExpirationPolicy="Sliding"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
            </asp:SqlDataSource>

            <asp:GridView
                id="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataSourceID="SqlDataSource1">
                <columns>
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                    <asp:BoundField HeaderText="Title" DataField="Title" />
                </columns>
            </asp:GridView>

        </form>
    </body>
</html>

Hinweise

Das SqlDataSource Steuerelement unterstützt das Zwischenspeichern von DatenThe SqlDataSource control supports data caching. Während die Daten zwischengespeichert werden Select , ruft die-Methode Daten aus dem Cache und nicht aus der zugrunde liegenden Datenbank ab.While data is cached, the Select method retrieves data from the cache rather than from the underlying database. Wenn der Cache abläuft, ruft Select die-Methode Daten aus der zugrunde liegenden Datenbank ab und speichert die Daten dann erneut.When the cache expires, the Select method retrieves data from the underlying database, and then caches the data again.

Das Verhalten des Caches wird durch eine Kombination der CacheDuration -und- CacheExpirationPolicy Einstellungen festgelegt.The behavior of the cache is determined by a combination of the CacheDuration and CacheExpirationPolicy settings. Wenn die CacheExpirationPolicy -Eigenschaft auf den Absolute -Wert festgelegt SqlDataSource ist, speichert die Daten beim ersten Datenabruf Vorgang, speichert Sie für den von der CacheDuration -Eigenschaft angegebenen Zeitraum im Arbeitsspeicher und verwirft ihn nach dem Zeitpunkt abgelaufen.If the CacheExpirationPolicy property is set to the Absolute value, the SqlDataSource caches data on the first data retrieval operation, holds it in memory for the amount of time that is specified by the CacheDuration property, and then discards it after the time has lapsed. Der Cache wird dann während des nächsten Vorgangs aktualisiert.The cache is then refreshed during the next operation. Wenn die CacheExpirationPolicy -Eigenschaft auf den Sliding -Wert festgelegt ist, speichert das Datenquellen-Steuerelement Daten beim ersten Datenabruf Vorgang zwischen, setzt aber das Zeitfenster, in dem der Cache für jeden nachfolgenden Vorgang enthalten ist, zurück.If the CacheExpirationPolicy property is set to the Sliding value, the data source control caches data on the first data retrieval operation, but resets the time window that it holds the cache for each subsequent operation. Der Cache läuft ab, wenn keine Aktivität für eine Zeit vorhanden ist, die gleich dem CacheDuration Wert seit dem letzten Select Vorgang ist.The cache expires, if there is no activity for a time that is equal to the CacheDuration value since the last Select operation.

Das SqlDataSource -Steuerelement kann Daten nur dann zwischen DataSet speichern, wenn im-Modus.The SqlDataSource control can cache data only when in the DataSet mode. Eine NotSupportedException -Ausnahme wird von der Select -Methode ausgelöst, SqlDataSource wenn das-Steuerelement DataReader auf den Wert festgelegt ist und Caching ebenfalls aktiviert ist.A NotSupportedException exception is thrown by the Select method, if the SqlDataSource control is set to the DataReader value and caching is also enabled.

Wichtig

Wenn Sie einen Client Identitätswechsel unter der Microsoft Windows-Authentifizierung verwenden, werden die Daten zwischengespeichert, wenn der erste Benutzer auf die Daten zugreift.When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. Wenn ein anderer Benutzer die gleichen Daten anfordert, werden die Daten aus dem Cache abgerufen.If another user requests the same data, the data is retrieved from the cache. Die Daten werden nicht durch einen weiteren Daten Bank Abruf abgerufen, um den Zugriff des Benutzers auf die Daten zu überprüfen.The data is not retrieved by making another call to the database to verify the user's access to the data. Wenn Sie davon ausgehen, dass mehr als ein Benutzer auf die Daten zugreifen muss und jeder Abruf der Daten durch die Sicherheits Konfigurationen für die Datenbank überprüft werden soll, sollten Sie die Zwischenspeicherung nicht verwenden.If you expect more than one user to access the data, and you want each retrieval to the data to be verified by the security configurations for the database, do not use caching.

Gilt für:

Siehe auch