Compartilhar via


SqlDataSource.CacheExpirationPolicy Propriedade

Definição

Obtém ou define o comportamento de expiração de cache que, quando combinado com a duração, descreve o comportamento do cache usado pelo controle de fonte de dados.

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 da propriedade

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

Exemplos

O exemplo de código a seguir demonstra como recuperar dados do banco de dados Northwind no Microsoft SQL Server e exibi-los em um GridView controle, com o cache de dados habilitado. Como a CacheExpirationPolicy propriedade é definida como o Sliding valor, os usuários não verão dados novos, mesmo que o CacheDuration valor seja de 20 segundos. Os dados armazenados em cache serão atualizados somente se não houver nenhuma atividade na página por mais de 20 segundos desde a última carga 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>

Comentários

O controle dá suporte ao SqlDataSource cache de dados. Embora os dados sejam armazenados em cache, o Select método recupera dados do cache em vez do banco de dados subjacente. Quando o cache expira, o Select método recupera dados do banco de dados subjacente e armazena os dados em cache novamente.

O comportamento do cache é determinado por uma combinação das CacheDuration configurações e CacheExpirationPolicy . Se a CacheExpirationPolicy propriedade for definida como o Absolute valor, os SqlDataSource dados serão armazenados em cache na primeira operação de recuperação de dados, os manterão na memória pelo período de tempo especificado pela CacheDuration propriedade e, em seguida, os descartarão após o término do tempo. Em seguida, o cache é atualizado durante a próxima operação. Se a CacheExpirationPolicy propriedade for definida como o Sliding valor, o controle da fonte de dados armazenará em cache os dados na primeira operação de recuperação de dados, mas redefinirá a janela de tempo que contém o cache para cada operação subsequente. O cache expira, se não houver nenhuma atividade por um tempo igual ao CacheDuration valor desde a última Select operação.

O SqlDataSource controle só pode armazenar dados em cache quando estiver no DataSet modo . Uma NotSupportedException exceção será gerada pelo Select método , se o SqlDataSource controle estiver definido como o valor e o DataReader cache também estiver habilitado.

Importante

Quando você está usando a representação do cliente na autenticação do Microsoft Windows, os dados são armazenados em cache quando o primeiro usuário acessa os dados. Se outro usuário solicitar os mesmos dados, os dados serão recuperados do cache. Os dados não são recuperados fazendo outra chamada ao banco de dados para verificar o acesso do usuário aos dados. Se você espera que mais de um usuário acesse os dados e deseja que cada recuperação dos dados seja verificada pelas configurações de segurança do banco de dados, não use cache.

Aplica-se a

Confira também