ObjectDataSource.CacheExpirationPolicy 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 perilaku kedaluwarsa cache yang, ketika dikombinasikan dengan durasi, menjelaskan perilaku cache yang digunakan kontrol sumber data.
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
Nilai Properti
Salah DataSourceCacheExpiry satu nilai. Default adalah Absolute.
Contoh
Bagian ini berisi dua contoh kode. Contoh kode pertama menunjukkan bagaimana objek ObjectDataSource mendukung pemfilteran dan penembolokan. Contoh kode kedua menunjukkan cara mengimplementasikan metode pembungkus DataSet yang mengembalikan objek untuk mengaktifkan penembolokan dan pemfilteran dengan ObjectDataSource objek.
Contoh kode berikut menunjukkan bagaimana ObjectDataSource kontrol mendukung pemfilteran dan penembolokan. Untuk mengaktifkan pemfilteran dan penembolokan, Anda harus menerapkan metode yang mengambil data, yang diidentifikasi oleh SelectMethod properti , untuk mengembalikan data sebagai DataSet objek. Dalam contoh ini, penembolokan diaktifkan karena EmployeeLogic
objek mengembalikan data sebagai DataSet, 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 menerapkan metode pembungkus DataSet yang mengembalikan objek untuk mengaktifkan penembolokan dan pemfilteran dengan ObjectDataSource kontrol. Dalam implementasi EmployeeLogic
dasar kelas , GetAllEmployees
metode mengembalikan ArrayList. 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 periode 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 untuk 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 .