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'dur. 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 değeri 20 saniye olarak ayarlanır ve CacheExpirationPolicy özelliği varsayılan olarak değere ayarlandığındanAbsolute, 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 ardından verileri yeniden önbelleğe alır.
SqlDataSource Özellik olarak ayarlandığında ve özellik 0'dan büyük bir değere ayarlandığında true
denetim verileri otomatik olarak önbelleğe EnableCaching alır ve CacheDuration 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şimi tarafından belirlenir. CacheExpirationPolicy özelliği değerine ayarlanırsaAbsolute, SqlDataSource ilk veri alma işlemindeki verileri önbelleğe alır, özelliği tarafından CacheDuration belirtilen süre boyunca en fazla bellekte tutar. Bellek gerekliyse veriler süre süresinden önce serbest bırakılabilir. Önbellek daha sonra sonraki işlem sırasında yenilenir. CacheExpirationPolicy özelliği değerine ayarlanırsaSliding, veri kaynağı denetimi ilk veri alma işleminde 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 DataReader ayarlanırsa ve önbelleğe alma da etkinleştirilirse SqlDataSource yöntemi tarafından Select 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ının güvenlik yapılandırmaları tarafından doğrulanmasını istiyorsanız, önbelleğe almayı kullanmayın.