SqlDataSource.CacheExpirationPolicy Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger förfallobeteendet för cachen som i kombination med varaktigheten beskriver beteendet för cachen som datakällans kontroll använder.
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
Egenskapsvärde
Ett av DataSourceCacheExpiry värdena. Standardvärdet är värdet Absolute .
Exempel
Följande kodexempel visar hur du hämtar data från Northwind-databasen i Microsoft SQL Server och visar dem i en GridView-kontroll, med datacachelagring aktiverat. Eftersom egenskapen CacheExpirationPolicy är inställd på Sliding värdet ser användarna inte nya data trots att värdet CacheDuration är 20 sekunder. Cachelagrade data uppdateras endast om det inte finns någon aktivitet på sidan under mer än 20 sekunder sedan den senaste sidinläsningen.
<!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>
Kommentarer
Kontrollen SqlDataSource stöder datacachelagring. Medan data cachelagras Select hämtar metoden data från cacheminnet i stället för från den underliggande databasen. När cacheminnet upphör att gälla Select hämtar metoden data från den underliggande databasen och cachelagrar sedan data igen.
Beteendet för cachen bestäms av en kombination av CacheDuration inställningarna och CacheExpirationPolicy . Om egenskapen CacheExpirationPolicy är inställd Absolute på värdet SqlDataSource cachelagrar data vid den första datahämtningsåtgärden, rymmer den i minnet under den tid som anges av CacheDuration egenskapen och tar sedan bort den när tiden har gått ut. Cachen uppdateras sedan under nästa åtgärd. CacheExpirationPolicy Om egenskapen är inställd Sliding på värdet cachelagrar datakällkontrollen data vid den första datahämtningsåtgärden, men återställer tidsfönstret som den innehåller cachen för varje efterföljande åtgärd. Cacheminnet upphör att gälla om det inte finns någon aktivitet under en tid som är lika med CacheDuration värdet sedan den senaste Select åtgärden.
Kontrollen SqlDataSource kan endast cachelagrat data när den är DataSet i läget. Ett NotSupportedException undantag utlöses av Select metoden, om SqlDataSource kontrollen är inställd på DataReader värdet och cachelagring också är aktiverat.
Important
När du använder klientpersonifiering under Microsoft Windows authentication cachelagras data när den första användaren kommer åt data. Om en annan användare begär samma data hämtas data från cacheminnet. Data hämtas inte genom att göra ett nytt anrop till databasen för att verifiera användarens åtkomst till data. Om du förväntar dig att fler än en användare ska komma åt data och du vill att varje hämtning till data ska verifieras av säkerhetskonfigurationerna för databasen ska du inte använda cachelagring.