ObjectDataSource.CacheDuration プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SelectMethod プロパティによって取得したデータを、データ ソース コントロールがキャッシュする時間 (秒単位) を取得または設定します。
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
プロパティ値
ObjectDataSource が SelectMethod プロパティの呼び出しの結果をキャッシュする秒数。 既定値は 0 です。 この値を負にすることはできません。
- 属性
例
このセクションには、2 つのコード例が含まれています。 最初のコード例では、オブジェクトがキャッシュを ObjectDataSource サポートする方法を示します。 2 番目のコード例では、オブジェクトを返す DataSet ラッパー メソッドを実装して、 オブジェクトを使用したキャッシュを有効にする方法を ObjectDataSource 示します。
次のコード例は、コントロールがキャッシュを ObjectDataSource サポートする方法を示しています。 キャッシュを有効にするには、 プロパティによって識別されるデータを取得する メソッドを SelectMethod 実装して、データをオブジェクトとして DataSet 返す必要があります。 この例では、 プロパティが EnableCaching に true
設定され、 CacheDuration プロパティと CacheExpirationPolicy プロパティが設定されています。 は ObjectDataSource 、 プロパティによって返されるデータを SelectMethod 30 秒間キャッシュします。
<%@ 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>
次のコード例では、オブジェクトを返す DataSet ラッパー メソッドを実装して、コントロールを使用したキャッシュを有効にする方法を ObjectDataSource 示します。 クラスの基本実装 EmployeeLogic
では、 メソッドは GetAllEmployees
オブジェクトを ArrayList 返します。 Web フォーム ページで を操作 ObjectDataSource するためにオブジェクトを完全にリファクタリングする代わりに、 という名前 GetAllEmployeesAsDataSet
のラッパー メソッドが追加され、一連の NorthwindEmployee
データが として DataSet返されます。
このコード例は、ObjectDataSource クラスのために提供されている大規模な例の一部です。
//
// 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
注釈
コントロールでは ObjectDataSource 、データ キャッシュがサポートされています。 データがキャッシュされている間、 メソッドの Select 呼び出しは、 が処理するビジネス オブジェクトからではなく、キャッシュからデータを ObjectDataSource 取得します。 キャッシュの有効期限が切れると、 メソッドは Select ビジネス オブジェクトからデータを取得し、データをもう一度キャッシュします。
コントロールはObjectDataSource、 プロパティが にtrue
設定されCacheDuration、 プロパティが 0 より大きい値に設定されるとEnableCaching、データを自動的にキャッシュします。これは、キャッシュ エントリが破棄されるまでにキャッシュがデータを格納する秒数を示します。 値 0 は、無限に長いキャッシュを示します。
キャッシュは、期間と設定の組み合わせによって調整されます CacheExpirationPolicy 。 プロパティが CacheExpirationPolicy 値に Absolute 設定されている場合、 ObjectDataSource メソッドの最初の呼び出しでデータが Select キャッシュされ、最大で プロパティで指定された時間だけメモリに CacheDuration 保持されます。 メモリが必要な場合は、期間の前にデータが解放される可能性があります。 その後、 メソッドの次の呼び出し中にキャッシュが Select 更新されます。 プロパティが CacheExpirationPolicy value に Sliding 設定されている場合、データ ソースコントロールはメソッドの最初の呼び出しでデータを Select キャッシュしますが、メソッドの後続の呼び出しのたびにキャッシュを保持する時間枠を Select リセットします。 メソッドの最後の呼び出し以降に プロパティと等しい CacheDuration 時間のアクティビティがない場合、キャッシュの有効期限が Select 切れます。
適用対象
こちらもご覧ください
.NET