ObjectDataSource.CacheExpirationPolicy Ö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.
Süreyle birleştirildiğinde veri kaynağı denetiminin kullandığı önbelleğin davranışını açıklayan önbellek süre sonu davranışını alır veya ayarlar.
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
Özellik Değeri
Değerlerden DataSourceCacheExpiry biri. Varsayılan değer: Absolute.
Örnekler
Bu bölüm iki kod örneği içerir. İlk kod örneği, bir ObjectDataSource nesnenin filtrelemeyi ve önbelleğe almayı nasıl desteklediğini gösterir. İkinci kod örneği, bir nesneyle önbelleğe alma ve filtrelemeyi 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 filtrelemeyi ve önbelleğe almayı nasıl desteklediğini gösterir. Filtrelemeyi ve ö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öntemi uygulamanız gerekir. Bu örnekte, nesne verileri olarak döndürdüğünden EmployeeLogic önbelleğe alma etkinleştirilir, EnableCaching özelliği olarak trueayarlanır ve CacheDuration ve CacheExpirationPolicy özellikleri ayarlanır.DataSet ö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, önbelleğe alma ve filtrelemeyi bir denetimle 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 ArrayListdöndürür. Nesnesini web forms sayfasında çalışmak ObjectDataSource üzere tamamen yeniden düzenlemek yerine, adlı GetAllEmployeesAsDataSet bir sarmalayıcı yöntemi eklenir ve bu yöntem veri kümesini NorthwindEmployee olarak DataSetdö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 Select yapılan çağrılar, birlikte çalıştığı iş nesnesi ObjectDataSource yerine önbellekten veri alır. Önbelleğin süresi dolduğunda yöntemi, Select iş nesnesinden verileri alır ve sonra verileri yeniden önbelleğe alır.
Özellik ObjectDataSource 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 önbellek süresini 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ğerine ayarlanırsaSliding, 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ı Select için önbelleği tuttuğu zaman penceresini sıfırlar. Yöntemine yapılan son çağrıdan bu yana özelliğine CacheDuration eşit bir süre boyunca etkinlik yoksa önbelleğin Select süresi dolar.