ObjectDataSource.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 özelliği tarafından SelectMethod 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
Bir özellik çağrısının ObjectDataSource sonuçlarını SelectMethod önbelleğe alan saniye sayısı. Varsayılan değer, 0'dur. Değer negatif olamaz.
- Öznitelikler
Örnekler
Bu bölüm iki kod örneği içerir. İlk kod örneği, bir ObjectDataSource nesnenin önbelleğe almayı nasıl desteklediğini gösterir. İkinci kod örneği, bir nesneyle önbelleğe almayı etkinleştirmek için bir nesne döndüren sarmalayıcı DataSetObjectDataSource yönteminin nasıl uygulandığını gösterir.
Aşağıdaki kod örneği, bir ObjectDataSource denetimin önbelleğe almayı nasıl desteklediğini gösterir. Önbelleğe almayı etkinleştirmek için, verileri nesne DataSet olarak döndürmek için özelliği tarafından SelectMethod tanımlanan verileri alan yöntemini uygulamanız gerekir. Bu örnekte, EnableCaching özelliği olarak true
ayarlanır ve CacheDuration ve CacheExpirationPolicy özellikleri ayarlanır. özelliği ObjectDataSource tarafından SelectMethod döndürülen verileri 30 saniye boyunca önbelleğe alır.
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ 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>
<title>ObjectDataSource - C# Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1" />
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
typename="Samples.AspNet.CS.EmployeeLogic"
selectmethod="GetAllEmployeesAsDataSet"
enablecaching="True"
cacheduration="30"
cacheexpirationpolicy="Absolute" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ 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>
<title>ObjectDataSource - VB Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1" />
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
typename="Samples.AspNet.VB.EmployeeLogic"
selectmethod="GetAllEmployeesAsDataSet"
enablecaching="True"
cacheduration="30"
cacheexpirationpolicy="Absolute" />
</form>
</body>
</html>
Aşağıdaki kod örneği, bir denetimle önbelleğe almayı etkinleştirmek için bir nesne döndüren sarmalayıcı DataSetObjectDataSource yönteminin nasıl uygulandığını gösterir. sınıfının GetAllEmployees
temel uygulamasında EmployeeLogic
yöntemi bir ArrayList nesnesi döndürür. Web Forms sayfasında ile ObjectDataSource çalışmak üzere nesnesini tamamen yeniden düzenlemek yerine, adlı GetAllEmployeesAsDataSet
bir sarmalayıcı yöntemi eklenir ve bu yöntem olarak bir veri DataSetkümesi NorthwindEmployee
döndürür.
Bu kod örneği, sınıfı için ObjectDataSource sağlanan daha büyük bir örneğin parçasıdır.
//
// To support basic filtering, the employees cannot
// be returned as an array of objects, rather as a
// DataSet of the raw data values.
public static DataSet GetAllEmployeesAsDataSet () {
ICollection employees = GetAllEmployees();
DataSet ds = new DataSet("Table");
// Create the schema of the DataTable.
DataTable dt = new DataTable();
DataColumn dc;
dc = new DataColumn("FirstName", typeof(string)); dt.Columns.Add(dc);
dc = new DataColumn("LastName", typeof(string)); dt.Columns.Add(dc);
dc = new DataColumn("Title", typeof(string)); dt.Columns.Add(dc);
dc = new DataColumn("Courtesy", typeof(string)); dt.Columns.Add(dc);
dc = new DataColumn("Supervisor",typeof(Int32)); dt.Columns.Add(dc);
// Add rows to the DataTable.
IEnumerator emplEnum = employees.GetEnumerator();
DataRow row;
NorthwindEmployee ne;
while (emplEnum.MoveNext()) {
ne = emplEnum.Current as NorthwindEmployee;
row = dt.NewRow();
row["FirstName"] = ne.FirstName;
row["LastName"] = ne.LastName;
row["Title"] = ne.Title;
row["Courtesy"] = ne.Courtesy;
row["Supervisor"] = ne.Supervisor;
dt.Rows.Add(row);
}
// Add the complete DataTable to the DataSet.
ds.Tables.Add(dt);
return ds;
}
' To support basic filtering, the employees cannot
' be returned as an array of objects, rather as a
' DataSet of the raw data values.
Public Shared Function GetAllEmployeesAsDataSet() As DataSet
Dim employees As ICollection = GetAllEmployees()
Dim ds As New DataSet("Table")
' Create the schema of the DataTable.
Dim dt As New DataTable()
Dim dc As DataColumn
dc = New DataColumn("FirstName", GetType(String))
dt.Columns.Add(dc)
dc = New DataColumn("LastName", GetType(String))
dt.Columns.Add(dc)
dc = New DataColumn("Title", GetType(String))
dt.Columns.Add(dc)
dc = New DataColumn("Courtesy", GetType(String))
dt.Columns.Add(dc)
dc = New DataColumn("Supervisor", GetType(Int32))
dt.Columns.Add(dc)
' Add rows to the DataTable.
Dim emplEnum As IEnumerator = employees.GetEnumerator()
Dim row As DataRow
Dim ne As NorthwindEmployee
While emplEnum.MoveNext()
ne = CType(emplEnum.Current, NorthwindEmployee)
row = dt.NewRow()
row("FirstName") = ne.FirstName
row("LastName") = ne.LastName
row("Title") = ne.Title
row("Courtesy") = ne.Courtesy
row("Supervisor") = ne.Supervisor
dt.Rows.Add(row)
End While
' Add the complete DataTable to the DataSet.
ds.Tables.Add(dt)
Return ds
End Function 'GetAllEmployeesAsDataSet
Açıklamalar
Denetim, ObjectDataSource veri önbelleğe almayı destekler. Veriler önbelleğe alınırken yöntemine yapılan Select çağrılar, ile birlikte çalışan iş nesnesi ObjectDataSource yerine önbellekten veri alır. Önbelleğin süresi dolduğunda yöntemi, Select iş nesnesinden verileri alır ve ardından verileri yeniden önbelleğe alır.
ObjectDataSource Ö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.
Önbellek, süre ve CacheExpirationPolicy ayarın bir bileşimiyle düzenlenir. CacheExpirationPolicy özelliği değerine ayarlanırsaAbsolute, ObjectDataSource yöntemine yapılan ilk çağrıdaki verileri önbelleğe Select alır ve en fazla özelliği tarafından CacheDuration belirtilen süre boyunca bellekte tutar. Bellek gerekiyorsa, veriler süre süresinden önce serbest bırakılabilir. Daha sonra yöntemine yapılan bir sonraki çağrı Select sırasında önbellek yenilenir. CacheExpirationPolicy özelliği değer olarak Sliding ayarlanırsa, veri kaynağı denetimi yöntemine yapılan ilk çağrıda verileri önbelleğe Select alır, ancak yöntemine yapılan sonraki her çağrıda Select önbelleği tuttuğu zaman penceresini sıfırlar. Yöntemine yapılan son çağrıdan bu yana özelliğe eşit CacheDuration bir süre boyunca etkinlik yoksa önbelleğin Select süresi dolar.