ObjectDataSource.CacheExpirationPolicy ObjectDataSource.CacheExpirationPolicy ObjectDataSource.CacheExpirationPolicy ObjectDataSource.CacheExpirationPolicy Property

Définition

Obtient ou définit le comportement d'expiration du cache qui, lorsqu'il est associé à la durée, décrit le comportement du cache utilisé par le contrôle de source de données.Gets or sets the cache expiration behavior that, when combined with the duration, describes the behavior of the cache that the data source control uses.

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

Valeur de propriété

Une des valeurs de l'objet DataSourceCacheExpiry.One of the DataSourceCacheExpiry values. La valeur par défaut est Absolute.The default is Absolute.

Exemples

Cette section contient deux exemples de code.This section contains two code examples. Le premier exemple de code montre comment ObjectDataSource un objet prend en charge le filtrage et la mise en cache.The first code example demonstrates how an ObjectDataSource object supports filtering and caching. Le deuxième exemple de code montre comment implémenter une méthode wrapper qui retourne DataSet un objet pour activer la mise en cache ObjectDataSource et le filtrage avec un objet.The second code example demonstrates how to implement a wrapper method that returns a DataSet object to enable caching and filtering with an ObjectDataSource object.

L’exemple de code suivant montre comment ObjectDataSource un contrôle prend en charge le filtrage et la mise en cache.The following code example demonstrates how an ObjectDataSource control supports filtering and caching. Pour activer le filtrage et la mise en cache, vous devez implémenter la méthode qui récupère les données, SelectMethod identifiées par la propriété, pour retourner DataSet les données sous la forme d’un objet.To enable filtering and caching, you must implement the method that retrieves data, which is identified by the SelectMethod property, to return the data as a DataSet object. Dans cet exemple, la mise en cache est EmployeeLogic activée, car l’objet DataSetretourne des EnableCaching données en tant que true, la propriété a CacheExpirationPolicy la valeur, et les CacheDuration propriétés et sont définies.In this example, caching is enabled because the EmployeeLogic object returns data as a DataSet, the EnableCaching property is set to true, and the CacheDuration and CacheExpirationPolicy properties are set. Le ObjectDataSource met en cache les données retournées SelectMethod par la propriété pendant 30 secondes.The ObjectDataSource caches data that is returned by the SelectMethod property for 30 seconds.

<%@ 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>

L’exemple de code suivant montre comment implémenter une méthode wrapper qui retourne DataSet un objet pour activer la mise en cache ObjectDataSource et le filtrage avec un contrôle.The following code example demonstrates how to implement a wrapper method that returns a DataSet object to enable caching and filtering with an ObjectDataSource control. Dans l’implémentation de base de EmployeeLogic la classe, GetAllEmployees la méthode retourne ArrayListun.In the base implementation of the EmployeeLogic class, the GetAllEmployees method returns an ArrayList. Au lieu de refactoriser complètement l’objet pour qu’il ObjectDataSource fonctionne avec le sur une page de Web Forms, GetAllEmployeesAsDataSet une méthode wrapper nommée est ajoutée et NorthwindEmployee retourne un jeu DataSetde données sous la forme d’un.Instead of refactoring the object completely to work with the ObjectDataSource on a Web Forms page, a wrapper method named GetAllEmployeesAsDataSet is added that returns a set of NorthwindEmployee data as a DataSet. Cet exemple de code fait partie d’un exemple plus complet fourni ObjectDataSource pour la classe.This code example is part of a larger example provided for the ObjectDataSource class.

//
// 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

Remarques

Le ObjectDataSource contrôle prend en charge la mise en cache des données.The ObjectDataSource control supports data caching. Pendant que les données sont mises en cache, Select les appels à la méthode récupèrent les données du cache plutôt que de ObjectDataSource l’objet métier avec lequel le fonctionne.While data is cached, calls to the Select method retrieve data from the cache rather than from the business object that the ObjectDataSource works with. Lorsque le cache expire, la Select méthode récupère les données de l’objet métier, puis met à nouveau en cache les données.When the cache expires, the Select method retrieves data from the business object, and then caches the data again.

Le ObjectDataSource contrôle met automatiquement en cache les données EnableCaching lorsque la propriété a true la valeur CacheDuration et que la propriété est définie sur une valeur supérieure à 0, ce qui indique le nombre de secondes pendant lesquelles le cache stocke les données avant l’entrée du cache. est ignoré.The ObjectDataSource control automatically caches data when the EnableCaching property is set to true and the CacheDuration property is set to a value greater than 0, which indicates the number of seconds that the cache stores data before the cache entry is discarded. La valeur 0 indique une période de cache infiniment longue.A value of 0 indicates an infinitely long cache period.

Le cache est régulé par une combinaison de la durée et du CacheExpirationPolicy paramètre.The cache is regulated by a combination of the duration and the CacheExpirationPolicy setting. CacheDuration Select ObjectDataSource Absolute Si la propriétéestdéfiniesurlavaleur,lemetencachelesdonnéessurlepremierappelàlaméthodeetlesconserveenmémoirepour,auplus,laduréespécifiéeparlapropriété.CacheExpirationPolicyIf the CacheExpirationPolicy property is set to the Absolute value, the ObjectDataSource caches data on the first call to the Select method and holds it in memory for, at most, the amount of time that is specified by the CacheDuration property. Les données peuvent être libérées avant l’heure de la durée, si la mémoire est nécessaire.The data might be released before the duration time, if the memory is needed. Le cache est ensuite actualisé lors de l’appel suivant à la Select méthode.The cache is then refreshed during the next call to the Select method. Si la Sliding Select Select propriété est définie sur la valeur, le contrôle de source de données met en cache les données lors du premier appel à la méthode, mais réinitialise la fenêtre de temps pour laquelle il contient le cache pour chaque appel ultérieur à la méthode. CacheExpirationPolicyIf the CacheExpirationPolicy property is set to the Sliding value, the data source control caches data on the first call to the Select method, but resets the time window for which it holds the cache for each subsequent call to the Select method. Le cache expire s’il n’y a aucune activité pendant une heure qui est égale CacheDuration à la propriété depuis le dernier appel Select à la méthode.The cache expires if there is no activity for a time that is equal to the CacheDuration property since the last call to the Select method.

S’applique à

Voir aussi