SqlDataSource.CacheExpirationPolicy Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.