SqlDataSource.CacheDuration Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Veri kaynağı denetiminin yöntemi tarafından Select(DataSourceSelectArguments) alınan verileri önbelleğe aldığı süreyi saniye cinsinden alır veya ayarlar.
public:
virtual property int CacheDuration { int get(); void set(int value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))]
public virtual int CacheDuration { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.DataSourceCacheDurationConverter))>]
member this.CacheDuration : int with get, set
Public Overridable Property CacheDuration As Integer
Özellik Değeri
İşlemin SqlDataSource sonuçlarını Select(DataSourceSelectArguments) önbelleğe alan saniye sayısı. Varsayılan değer 0’dır. Değer negatif olamaz.
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, Microsoft SQL Server'daki Northwind veritabanından veri almayı ve veri önbelleğe alma etkin bir GridView denetimde görüntülemeyi gösterir. CacheDuration 20 saniye olarak ayarlanır ve CacheExpirationPolicy özelliği varsayılan olarak değere Absolute ayarlandığından, bu sayfanın kullanıcıları her 20 saniyede bir yeni verileri görür.
<%@ Page language="C#" %>
<!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"
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>
<%@ Page language="VB" %>
<!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"
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>
Açıklamalar
Denetim SqlDataSource , veri önbelleğe almayı destekler. Veriler önbelleğe alınırken yöntemi verileri Select temel alınan veritabanından değil önbellekten alır. Önbelleğin süresi dolduğunda yöntemi, Select temel alınan veritabanından verileri alır ve sonra verileri yeniden önbelleğe alır.
Özellik SqlDataSource olarak ayarlandığında ve CacheDuration özellik 0'dan büyük bir değere ayarlandığında denetim verileri otomatik olarak önbelleğe EnableCachingtrue alır ve bu da önbellek girdisi atilmeden önce önbelleğin verileri depoladığı saniye sayısını gösterir. 0 değeri sonsuz uzun bir önbelleği gösterir.
Önbelleğin davranışı, süre ve CacheExpirationPolicy özelliğin bir bileşimiyle belirlenir. CacheExpirationPolicy özelliği değerine ayarlanırsaAbsolute, SqlDataSource ilk veri alma işlemindeki verileri önbelleğe alır, en fazla özellik tarafından CacheDuration belirtilen süre boyunca bellekte tutar. Bellek gerekliyse veriler süre süresinden önce serbest bırakılabilir. Ardından önbellek sonraki işlem sırasında yenilenir. CacheExpirationPolicy özelliği değerine ayarlanırsaSliding, veri kaynağı denetimi ilk veri alma işlemindeki verileri önbelleğe alır, ancak izleyen her işlem için önbelleği tuttuğu zaman penceresini sıfırlar. Son Select işlemden bu yana değere eşit bir süre boyunca etkinlik yoksa önbelleğin CacheDuration süresi dolar.
Denetim SqlDataSource yalnızca moddayken DataSet verileri önbelleğe alabilir. NotSupportedException Denetim değere Select ayarlanırsa DataReader ve önbelleğe alma da etkinleştirilirse SqlDataSource yöntemi tarafından bir özel durum oluşturulur.
Önemli
Microsoft Windows kimlik doğrulaması altında istemci kimliğe bürünme özelliğini kullandığınızda, veriler ilk kullanıcı verilere eriştiğinde önbelleğe alınır. Başka bir kullanıcı aynı verileri isterse, veriler önbellekten alınır. Veriler, kullanıcının verilere erişimini doğrulamak için veritabanına başka bir çağrı yapılarak alınmaz. Verilere birden fazla kullanıcının erişmesini bekliyorsanız ve her veri alımının veritabanı için güvenlik yapılandırmaları tarafından doğrulanmasını istiyorsanız önbelleğe almayı kullanmayın.