ObjectDataSource.CacheDuration Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur durasi waktu, dalam detik, bahwa kontrol sumber data menyimpan data yang diambil oleh SelectMethod properti .
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
Nilai Properti
Jumlah detik yang di-cache ObjectDataSource hasil pemanggilan SelectMethod properti. Defaultnya adalah 0. Nilai tidak boleh negatif.
- Atribut
Contoh
Bagian ini berisi dua contoh kode. Contoh kode pertama menunjukkan bagaimana ObjectDataSource objek mendukung penembolokan. Contoh kode kedua menunjukkan cara mengimplementasikan metode pembungkus DataSet yang mengembalikan objek untuk mengaktifkan penembolokan dengan ObjectDataSource objek.
Contoh kode berikut menunjukkan bagaimana ObjectDataSource kontrol mendukung penembolokan. Untuk mengaktifkan penembolokan, Anda harus menerapkan metode yang mengambil data, yang diidentifikasi oleh SelectMethod properti , untuk mengembalikan data sebagai DataSet objek. Dalam contoh ini, EnableCaching properti diatur ke true
, dan CacheDuration properti dan CacheExpirationPolicy diatur. Cache ObjectDataSource data yang dikembalikan oleh SelectMethod properti selama 30 detik.
<%@ 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>
Contoh kode berikut menunjukkan cara mengimplementasikan metode pembungkus DataSet yang mengembalikan objek untuk mengaktifkan penembolokan dengan ObjectDataSource kontrol. Dalam implementasi EmployeeLogic
dasar kelas , GetAllEmployees
metode mengembalikan ArrayList objek . Alih-alih merefaktor objek sepenuhnya untuk bekerja dengan ObjectDataSource pada halaman Formulir Web, metode pembungkus bernama GetAllEmployeesAsDataSet
ditambahkan yang mengembalikan sekumpulan NorthwindEmployee
data sebagai DataSet.
Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk ObjectDataSource kelas .
//
// 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
Keterangan
Kontrol ObjectDataSource mendukung penembolokan data. Saat data di-cache, panggilan ke Select metode mengambil data dari cache daripada dari objek bisnis yang ObjectDataSource bekerja dengannya. Ketika cache kedaluwarsa, Select metode mengambil data dari objek bisnis, lalu cache data lagi.
Kontrol ObjectDataSource secara otomatis menyimpan data saat EnableCaching properti diatur ke true
dan CacheDuration properti diatur ke nilai yang lebih besar dari 0, yang menunjukkan jumlah detik cache menyimpan data sebelum entri cache dibuang. Nilai 0 menunjukkan cache yang sangat panjang.
Cache diatur oleh kombinasi durasi dan CacheExpirationPolicy pengaturan. CacheExpirationPolicy Jika properti diatur ke Absolute nilai , ObjectDataSource cache data pada panggilan pertama ke Select metode dan menyimpannya dalam memori untuk, paling banyak, jumlah waktu yang ditentukan oleh CacheDuration properti . Data mungkin dirilis sebelum waktu durasi, jika memori diperlukan. Cache kemudian disegarkan selama panggilan berikutnya ke Select metode . CacheExpirationPolicy Jika properti diatur ke Sliding nilai, kontrol sumber data menyimpan data pada panggilan pertama ke Select metode , tetapi mengatur ulang jendela waktu yang menyimpan cache pada setiap panggilan berikutnya ke Select metode . Cache kedaluwarsa jika tidak ada aktivitas untuk waktu yang sama dengan CacheDuration properti sejak panggilan terakhir ke Select metode .