SqlDataSource.CacheExpirationPolicy Eigenschap

Definitie

Hiermee wordt het verloopgedrag van de cache opgehaald of ingesteld dat, in combinatie met de duur, het gedrag beschrijft van de cache die door het gegevensbronbeheer wordt gebruikt.

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

Waarde van eigenschap

Een van de DataSourceCacheExpiry waarden. De standaardwaarde is de Absolute waarde.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevens ophaalt uit de Northwind-database in Microsoft SQL Server en weergeeft in een besturingselement GridView, waarbij gegevenscache is ingeschakeld. Omdat de CacheExpirationPolicy eigenschap is ingesteld op de Sliding waarde, zien gebruikers geen nieuwe gegevens, ook al is de CacheDuration waarde 20 seconden. De gegevens in de cache worden alleen vernieuwd als er meer dan 20 seconden geen activiteit op de pagina is sinds het laden van de laatste pagina.

<!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>

Opmerkingen

Het SqlDataSource besturingselement ondersteunt het opslaan van gegevens in cache. Terwijl gegevens in de cache worden opgeslagen, haalt de Select methode gegevens op uit de cache in plaats van uit de onderliggende database. Wanneer de cache verloopt, haalt de Select methode gegevens op uit de onderliggende database en slaat de gegevens vervolgens opnieuw in de cache op.

Het gedrag van de cache wordt bepaald door een combinatie van de CacheDuration en CacheExpirationPolicy instellingen. Als de CacheExpirationPolicy eigenschap is ingesteld op de Absolute waarde, worden de gegevens opgeslagen in de SqlDataSource eerste bewerking voor het ophalen van gegevens, wordt deze in het geheugen opgeslagen voor de hoeveelheid tijd die is opgegeven door de CacheDuration eigenschap en wordt deze vervolgens verwijderd nadat de tijd is verstreken. De cache wordt vervolgens vernieuwd tijdens de volgende bewerking. Als de CacheExpirationPolicy eigenschap is ingesteld op de Sliding waarde, slaat het besturingselement voor gegevensbron gegevens op in de eerste bewerking voor het ophalen van gegevens, maar wordt het tijdvenster opnieuw ingesteld dat de cache voor elke volgende bewerking wordt bewaard. De cache verloopt als er geen activiteit is voor een tijd die gelijk is aan de CacheDuration waarde sinds de laatste Select bewerking.

Het SqlDataSource besturingselement kan alleen gegevens opslaan in de cache in de DataSet modus. Er wordt een NotSupportedException uitzondering gegenereerd door de Select methode, als het SqlDataSource besturingselement is ingesteld op de DataReader waarde en caching ook is ingeschakeld.

Important

Wanneer u clientimitatie onder Microsoft Windows authentication gebruikt, worden de gegevens in de cache opgeslagen wanneer de eerste gebruiker toegang heeft tot de gegevens. Als een andere gebruiker dezelfde gegevens aanvraagt, worden de gegevens opgehaald uit de cache. De gegevens worden niet opgehaald door een andere aanroep naar de database uit te voeren om de toegang van de gebruiker tot de gegevens te verifiëren. Als u verwacht dat meer dan één gebruiker toegang heeft tot de gegevens en u wilt dat de gegevens worden opgehaald door de beveiligingsconfiguraties voor de database, gebruikt u geen caching.

Van toepassing op

Zie ook