SqlDataSource.CacheExpirationPolicy Proprietà

Definizione

Ottiene o imposta il comportamento di scadenza della cache che, quando combinato con la durata, descrive il comportamento della cache utilizzato dal controllo origine dati.

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

Valore della proprietà

Uno dei valori di DataSourceCacheExpiry. Il valore predefinito è il valore Absolute.

Esempio

Nell'esempio di codice seguente viene illustrato come recuperare dati dal database Northwind in Microsoft SQL Server e visualizzarli in un GridView controllo, con la memorizzazione nella cache dei dati abilitata. Poiché la CacheExpirationPolicy proprietà è impostata sul Sliding valore , gli utenti non visualizzeranno dati aggiornati anche se il CacheDuration valore è di 20 secondi. I dati memorizzati nella cache vengono aggiornati solo se nella pagina non sono presenti attività per più di 20 secondi dall'ultimo caricamento della 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>

Commenti

Il controllo supporta la SqlDataSource memorizzazione nella cache dei dati. Mentre i dati vengono memorizzati nella cache, il Select metodo recupera i dati dalla cache anziché dal database sottostante. Alla scadenza della cache, il Select metodo recupera i dati dal database sottostante e quindi memorizza nuovamente nella cache i dati.

Il comportamento della cache è determinato da una combinazione di CacheDuration impostazioni e CacheExpirationPolicy . Se la CacheExpirationPolicy proprietà è impostata Absolute sul valore , i dati vengono SqlDataSource memorizzati nella cache nella prima operazione di recupero dei dati, vengono memorizzati in memoria per il periodo di tempo specificato dalla CacheDuration proprietà e quindi lo elimina dopo la scadenza del tempo. La cache viene quindi aggiornata durante l'operazione successiva. Se la CacheExpirationPolicy proprietà è impostata Sliding sul valore , il controllo origine dati memorizza nella cache i dati nella prima operazione di recupero dati, ma reimposta l'intervallo di tempo in cui contiene la cache per ogni operazione successiva. La cache scade, se non è presente alcuna attività per un periodo di tempo uguale al CacheDuration valore dall'ultima Select operazione.

Il SqlDataSource controllo può memorizzare nella cache i dati solo in DataSet modalità . Viene NotSupportedException generata un'eccezione dal Select metodo , se il SqlDataSource controllo è impostato sul valore e la memorizzazione nella DataReader cache è abilitata.

Importante

Quando si usa la rappresentazione client con l'autenticazione di Microsoft Windows, i dati vengono memorizzati nella cache quando il primo utente accede ai dati. Se un altro utente richiede gli stessi dati, i dati vengono recuperati dalla cache. I dati non vengono recuperati effettuando un'altra chiamata al database per verificare l'accesso dell'utente ai dati. Se si prevede che più di un utente accinga ai dati e si vuole che ogni recupero ai dati venga verificato dalle configurazioni di sicurezza per il database, non usare la memorizzazione nella cache.

Si applica a

Vedi anche