ObjectDataSource.EnableCaching プロパティ
アセンブリ: System.Web (system.web.dll 内)

Dim instance As ObjectDataSource Dim value As Boolean value = instance.EnableCaching instance.EnableCaching = value
/** @property */ public boolean get_EnableCaching () /** @property */ public void set_EnableCaching (boolean value)
データ ソース コントロールでデータ キャッシュが有効な場合は true。それ以外の場合は false。既定値は false です。


ObjectDataSource コントロールは、データのキャッシュをサポートしています。データがキャッシュされている間、Select メソッドは、ObjectDataSource でビジネス オブジェクトのインスタンスを作成し、データ メソッドを呼び出すのではなく、キャッシュからデータを取得します。キャッシュの有効期限が切れると、Select メソッドはビジネス オブジェクトからデータを取得し、そのデータを再びキャッシュします。
EnableCaching プロパティが true に設定され、CacheDuration プロパティ (キャッシュ エントリが破棄されるまでの秒数、つまり、キャッシュにデータが格納される秒数) が 0 より大きい値に設定されている場合、ObjectDataSource コントロールはデータを自動的にキャッシュします。値 0 は、キャッシュ時間が制限されていないことを示します。

このセクションには、2 つのコード例が含まれています。1 つ目のコード例では、ObjectDataSource オブジェクトでキャッシュをサポートする方法を示します。2 つ目のコード例では、DataSet オブジェクトを返すラッパー メソッドを実装し、ObjectDataSource オブジェクトでキャッシュを有効にする方法を示します。
ObjectDataSource コントロールでキャッシュをサポートする方法を次のコード例に示します。キャッシュを有効にするには、SelectMethod プロパティで識別されるデータ取得メソッドを実装し、データを DataSet として返す必要があります。この例では、EmployeeLogic オブジェクトがデータを DataSet オブジェクトとして返し、EnableCaching プロパティが true に設定され、CacheDuration プロパティと CacheExpirationPolicy プロパティが設定されているため、キャッシュが有効になります。ObjectDataSource は、SelectMethod プロパティによって返されるデータを 30 秒間キャッシュします。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %> <%@ Page language="vb" %> <html> <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>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %> <%@ Page language="c#" %> <html> <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.jsl" Assembly="Samples.AspNet.jsl" %> <%@ Page Language="VJ#" %> <html> <head> <title>ObjectDataSource - VJ# 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.jsl.EmployeeLogic" selectmethod="GetAllEmployeesAsDataSet" enablecaching="True" cacheduration="30" cacheexpirationpolicy="Absolute" /> </form> </body> </html>
DataSet オブジェクトを返すラッパー メソッドを実装し、ObjectDataSource コントロールでキャッシュを有効にする方法を次のコード例に示します。EmployeeLogic クラスの基本実装では、GetAllEmployees メソッドは ArrayList オブジェクトを返します。Web フォーム ページの ObjectDataSource を使用するためにオブジェクトを完全にリファクタする代わりに、一連の NorthwindEmployee データを DataSet として返す GetAllEmployeesAsDataSet という名前のラッパー メソッドが追加されています。
このコード例は、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 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
// // 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 static DataSet GetAllEmployeesAsDataSet() throws NorthwindDataException { ICollection employees = GetAllEmployees(); DataSet ds = new DataSet("Table"); // Create the schema of the DataTable. DataTable dt = new DataTable(); DataColumn dc; dc = new DataColumn("FirstName", String.class.ToType()); dt.get_Columns().Add(dc); dc = new DataColumn("LastName", String.class.ToType()); dt.get_Columns().Add(dc); dc = new DataColumn("Title", String.class.ToType()); dt.get_Columns().Add(dc); dc = new DataColumn("Courtesy", String.class.ToType()); dt.get_Columns().Add(dc); dc = new DataColumn("Supervisor", Int32.class.ToType()); dt.get_Columns().Add(dc); // Add rows to the DataTable. IEnumerator emplEnum = employees.GetEnumerator(); DataRow row; NorthwindEmployee ne; while (emplEnum.MoveNext()) { ne = (NorthwindEmployee)emplEnum.get_Current(); row = dt.NewRow(); row.set_Item("FirstName", ne.get_FirstName()); row.set_Item("LastName", ne.get_LastName()); row.set_Item("Title", ne.get_Title()); row.set_Item("Courtesy", ne.get_Courtesy()); row.set_Item("Supervisor", (Int32)ne.get_Supervisor()); dt.get_Rows().Add(row); } // Add the complete DataTable to the DataSet. ds.get_Tables().Add(dt); return ds; } //GetAllEmployeesAsDataSet

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からObjectDataSource.EnableCaching プロパティを検索する場合は、下記のリンクをクリックしてください。

- ObjectDataSource.EnableCaching プロパティのページへのリンク