Compartir vía


SqlDataSource.CacheExpirationPolicy Propiedad

Definición

Obtiene o establece el comportamiento de expiración de la memoria caché que, combinado con la duración, describe el comportamiento de almacenamiento en caché que usa el control de origen de datos.

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

Valor de propiedad

Uno de los valores de DataSourceCacheExpiry. El valor predeterminado es Absolute.

Ejemplos

En el ejemplo de código siguiente se muestra cómo recuperar datos de la base de datos Northwind en Microsoft SQL Server y mostrarlos en un GridView control, con el almacenamiento en caché de datos habilitado. Dado que la CacheExpirationPolicy propiedad está establecida en el Sliding valor, los usuarios no verán datos nuevos aunque el CacheDuration valor sea de 20 segundos. Los datos almacenados en caché solo se actualizan si no hay ninguna actividad en la página durante más de 20 segundos desde la última carga de página.

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

Comentarios

El SqlDataSource control admite el almacenamiento en caché de datos. Mientras se almacenan en caché los datos, el Select método recupera datos de la memoria caché en lugar de de la base de datos subyacente. Cuando expira la memoria caché, el Select método recupera datos de la base de datos subyacente y, a continuación, vuelve a almacenar en caché los datos.

El comportamiento de la memoria caché viene determinado por una combinación de la CacheDuration configuración y CacheExpirationPolicy . Si la CacheExpirationPolicy propiedad se establece en el Absolute valor , almacena SqlDataSource los datos en caché en la primera operación de recuperación de datos, lo mantiene en memoria durante el período de tiempo especificado por la CacheDuration propiedad y, a continuación, lo descarta después de que haya expirado el tiempo. A continuación, la memoria caché se actualiza durante la siguiente operación. Si la CacheExpirationPolicy propiedad se establece en el Sliding valor , el control de origen de datos almacena en caché los datos en la primera operación de recuperación de datos, pero restablece la ventana de tiempo que contiene la memoria caché para cada operación posterior. La memoria caché expira, si no hay ninguna actividad durante un tiempo que sea igual al CacheDuration valor desde la última Select operación.

El SqlDataSource control solo puede almacenar en caché los datos cuando están en el DataSet modo . El método produce Select una NotSupportedException excepción, si el SqlDataSource control se establece en el DataReader valor y el almacenamiento en caché también está habilitado.

Importante

Cuando se usa la suplantación de cliente en la autenticación de Microsoft Windows, los datos se almacenan en caché cuando el primer usuario accede a los datos. Si otro usuario solicita los mismos datos, los datos se recuperan de la memoria caché. Los datos no se recuperan realizando otra llamada a la base de datos para comprobar el acceso del usuario a los datos. Si espera que más de un usuario acceda a los datos y desea que las configuraciones de seguridad de la base de datos comprueben cada recuperación de los datos, no use el almacenamiento en caché.

Se aplica a

Consulte también