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 DataSet nesne döndüren sarmalayıcı ObjectDataSource 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üğündenEmployeeLogic
, özelliği olarak ayarlandığından EnableCaching ve CacheExpirationPolicy özellikleri ayarlandığından true
CacheDuration önbelleğe alma etkinleştirilir.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, bir denetimle ö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. 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 olarak DataSetbir veri kü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 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 iş Select nesnesinden verileri alır ve sonra verileri yeniden önbelleğe alır.
ObjectDataSource Özellik olarak ayarlandığında ve CacheDuration özellik 0'dan büyük bir değere ayarlandığında true
denetim verileri otomatik olarak önbelleğe EnableCaching 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. Önbellek daha sonra yöntemine bir sonraki çağrı Select sırasında 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.