SqlDataSource.CacheExpirationPolicy Propriété

Définition

Obtient ou définit le comportement d'expiration du cache qui, lorsqu'il est associé à la durée, décrit le comportement du cache utilisé par le contrôle de source de données.

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

Valeur de propriété

DataSourceCacheExpiry

Une des valeurs de l'objet DataSourceCacheExpiry. La valeur par défaut est la valeur Absolute.

Exemples

L’exemple de code suivant montre comment récupérer des données de la base de données Northwind dans Microsoft SQL Server et l’afficher dans un GridView contrôle, avec la mise en cache des données activée. Étant donné que la CacheExpirationPolicy propriété est définie sur la Sliding valeur, les utilisateurs ne voient pas de données fraîches même si la CacheDuration valeur est de 20 secondes. Les données mises en cache sont actualisées uniquement s’il n’y a aucune activité sur la page pendant plus de 20 secondes depuis le chargement de la dernière page.

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

Remarques

Le contrôle prend en charge la SqlDataSource mise en cache des données. Bien que les données sont mises en cache, la Select méthode récupère les données du cache plutôt qu’à partir de la base de données sous-jacente. Lorsque le cache expire, la Select méthode récupère les données de la base de données sous-jacente, puis met à nouveau en cache les données.

Le comportement du cache est déterminé par une combinaison des paramètres et CacheExpirationPolicy des CacheDuration paramètres. Si la CacheExpirationPolicy propriété est définie sur la Absolute valeur, les SqlDataSource données sont mises en cache lors de la première opération de récupération de données, la conserve en mémoire pendant la durée spécifiée par la CacheDuration propriété, puis l’ignore après l’expiration du temps. Le cache est ensuite actualisé pendant l’opération suivante. Si la CacheExpirationPolicy propriété est définie sur la Sliding valeur, le contrôle de source de données met en cache les données sur la première opération de récupération de données, mais réinitialise la fenêtre de temps qu’elle contient le cache pour chaque opération ultérieure. Le cache expire, s’il n’existe aucune activité pendant une durée égale à la CacheDuration valeur depuis la dernière Select opération.

Le SqlDataSource contrôle peut mettre en DataSet cache uniquement les données en mode. Une NotSupportedException exception est levée par la Select méthode, si le SqlDataSource contrôle est défini sur la DataReader valeur et la mise en cache est également activée.

Important

Lorsque vous utilisez l’emprunt d’identité client sous Microsoft Authentification Windows, les données sont mises en cache lorsque le premier utilisateur accède aux données. Si un autre utilisateur demande les mêmes données, les données sont récupérées à partir du cache. Les données ne sont pas récupérées en effectuant un autre appel à la base de données pour vérifier l’accès de l’utilisateur aux données. Si vous attendez que plusieurs utilisateurs accèdent aux données et que vous souhaitez que chaque récupération des données soit vérifiée par les configurations de sécurité de la base de données, n’utilisez pas la mise en cache.

S’applique à

Voir aussi