SqlDataSource.CacheExpirationPolicy Propriedade

Definição

Obtém ou define o comportamento de expiração da cache que, quando combinado com a duração, descreve o comportamento da cache que o controlo de fonte de dados utiliza.

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 Propriedade

Um dos DataSourceCacheExpiry valores. O padrão é o Absolute valor.

Exemplos

O exemplo de código seguinte demonstra como recuperar dados da base de dados Northwind em Microsoft SQL Server e exibi-los num controlo GridView, com a cache de dados ativada. Como a CacheExpirationPolicy propriedade está definida para esse Sliding valor, os utilizadores não verão dados novos, mesmo que o CacheDuration valor seja de 20 segundos. Os dados em cache são atualizados apenas se não houver atividade na página durante mais de 20 segundos desde o último carregamento da 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>

Observações

O SqlDataSource controlo suporta cache de dados. Enquanto os dados são armazenados em cache, o Select método recupera os dados da cache em vez de da base de dados subjacente. Quando a cache expira, o Select método recupera dados da base de dados subjacente e depois volta a armazenar os dados em cache.

O comportamento da cache é determinado por uma combinação das CacheDuration definições e CacheExpirationPolicy . Se a CacheExpirationPolicy propriedade for definida para o Absolute valor, o SqlDataSource utilizador armazena em cache os dados na primeira operação de recuperação, mantém-nos na memória durante o tempo especificado pela CacheDuration propriedade e depois descarta-os após o tempo ter passado. A cache é então atualizada durante a operação seguinte. Se a CacheExpirationPolicy propriedade for definida para o Sliding valor, o controlo de fontes de dados armazena em cache os dados na primeira operação de recuperação, mas reinicia a janela de tempo em que mantém a cache para cada operação subsequente. A cache expira se não houver atividade durante um tempo igual ao CacheDuration valor desde a última Select operação.

O SqlDataSource controlo só pode armazenar dados em cache quando estiver no DataSet modo. Uma exceção é lançada pelo NotSupportedException método, se o Select controlo estiver definido para o SqlDataSource valor e a DataReader cache também estiver ativada.

Importante

Quando está a usar usurpação de cliente em Microsoft Windows authentication, os dados são armazenados em cache quando o primeiro utilizador acede aos dados. Se outro utilizador solicitar os mesmos dados, os dados são recuperados da cache. Os dados não são recuperados através de uma nova chamada à base de dados para verificar o acesso do utilizador aos dados. Se esperar que mais do que um utilizador aceda aos dados e quiser que cada recuperação dos dados seja verificada pelas configurações de segurança da base de dados, não use caching.

Aplica-se a

Ver também