¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
EnableCaching (Propiedad)

ObjectDataSource.EnableCaching (Propiedad)

Actualización: noviembre 2007

Obtiene o establece un valor que indica si el control ObjectDataSource tiene habilitado el almacenamiento de datos en caché.

Espacio de nombres:  System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)

public virtual bool EnableCaching { get; set; }
/** @property */
public boolean get_EnableCaching()
/** @property */
public  void set_EnableCaching(boolean value)

public function get EnableCaching () : boolean
public function set EnableCaching (value : boolean)
<asp:ObjectDataSource EnableCaching="True|False" />

Valor de propiedad

Tipo: System.Boolean
Es true si el almacenamiento de datos en caché está habilitado para el control de origen de datos; de lo contrario, es false. El valor predeterminado es false.

ExcepciónCondición
NotSupportedException

La propiedad EnableCaching se establece en true cuando el método especificado por la propiedad SelectMethod devuelve DbDataReader.

El control ObjectDataSource admite el almacenamiento de datos en caché. Mientras los datos están almacenados en caché, las llamadas al método Select recuperan los datos de la caché, en lugar de que ObjectDataSource cree una instancia del objeto comercial y llame a su método de datos. Cuando la caché expira, el método Select recupera los datos del objeto comercial y después almacena otra vez los datos en memoria caché.

El control ObjectDataSource almacena los datos en memoria caché automáticamente cuando la propiedad EnableCaching está establecida en true y la propiedad CacheDuration está establecida en un valor mayor que 0, que indica el número de segundos durante los cuales la memoria caché almacena datos antes de que se descarte la entrada de caché. Un valor de 0 indica una caché infinitamente larga.

En los tres ejemplos siguientes se muestran una página web, una clase de página de código subyacente y una clase de acceso a datos que recuperan datos de la tabla Employees en la base de datos Northwind.

En el primer ejemplo se muestra una página web que contiene dos controles ObjectDataSource, un control DropDownList y un control DetailsView. El primer control ObjectDataSource y el control DropDownList se utilizan para recuperar y mostrar los nombres de empleados de la base de datos. El segundo control ObjectDataSource y el control DetailsView se utilizan para recuperar y mostrar el registro de empleado seleccionado por el usuario.

El almacenamiento en caché está habilitado para el control ObjectDataSource. Por consiguiente, cada registro se recupera solamente una vez de la base de datos. La propiedad CacheKeyDependency está establecida en "EmployeeDetails", pero cualquier valor de cadena puede funcionar como clave. La página web también incluye un control Button en el que el usuario puede hacer clic para que expiren los datos almacenados en caché.

<form id="form1" runat="server">
<div>
<asp:objectdatasource
      ID="ObjectDataSource1"
      runat="server"
      SelectMethod="GetFullNamesAndIDs"
      TypeName="Samples.AspNet.CS.EmployeeLogic" />

    <p>
    <asp:dropdownlist
      ID="DropDownList1"
      runat="server" 
      DataSourceID="ObjectDataSource1"
      DataTextField="FullName"
      DataValueField="EmployeeID" 
      AutoPostBack="True" 
      AppendDataBoundItems="true">
        <asp:ListItem Text="Select One" Value=""></asp:ListItem>
    </asp:dropdownlist>
    </p>

 <asp:objectdatasource
      ID="ObjectDataSource2"
      runat="server"
      SelectMethod="GetEmployee"
      TypeName="Samples.AspNet.CS.EmployeeLogic" 
      EnableCaching="true"
      CacheKeyDependency="EmployeeDetails" >
      <SelectParameters>
        <asp:ControlParameter ControlID="DropDownList1" DefaultValue="-1" Name="empID" />
      </SelectParameters>
    </asp:objectdatasource>

    <asp:DetailsView
        ID="DetailsView1"
        runat="server"
        DataSourceID="ObjectDataSource2" 
        AutoGenerateRows="false">  
        <Fields>
            <asp:BoundField HeaderText="Address" DataField="Address" />
            <asp:BoundField HeaderText="City" DataField="City" />
            <asp:BoundField HeaderText="Postal Code" DataField="PostalCode" />
        </Fields>  
    </asp:DetailsView>

    <asp:Button 
    ID="Button1" 
    runat="server" 
    Text="Check for latest data" 
    OnClick="Button1_Click" />

</div>
</form>


En el segundo ejemplo se muestra un controlador para el evento Load y un controlador para el evento Click del control Button. El controlador de eventos Load crea un elemento de caché con una clave establecida en el valor de CacheKeyDependency. El controlador de eventos Click quita el elemento de caché cuya clave es igual al valor de CacheKeyDependency. Cuando se quita el elemento en caché, se expiran todos los datos almacenados en caché que dependen de la clave.

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Cache[ObjectDataSource2.CacheKeyDependency] = "CacheExample";
    }
}
protected void Button1_Click(object sender, EventArgs e)
{
    Cache.Remove(ObjectDataSource2.CacheKeyDependency);
    Cache[ObjectDataSource2.CacheKeyDependency] = "CacheExample";
    DetailsView1.DataBind();
}


En el tercer ejemplo se muestra la clase de acceso a datos que interactúa con la base de datos Northwind. La clase utiliza LINQ para consultar la tabla Employees. El ejemplo requiere una clase LINQ to SQL que represente la base de datos Northwind y la tabla Employees. Para obtener más información, vea Cómo: Crear clases de LINQ to SQL en una aplicación web.

public class EmployeeLogic
{
    public static Array GetFullNamesAndIDs()
    {
        NorthwindDataContext ndc = new NorthwindDataContext();

        var employeeQuery =
            from e in ndc.Employees
            orderby e.LastName
            select new { FullName = e.FirstName + " " + e.LastName, EmployeeID = e.EmployeeID };

        return employeeQuery.ToArray();
    }

    public static Employee GetEmployee(int empID)
    {
        if (empID < 0)
        {
            return null;
        }
        else
        {
            NorthwindDataContext ndc = new NorthwindDataContext();
            var employeeQuery =
                from e in ndc.Employees
                where e.EmployeeID == empID
                select e;

            return employeeQuery.Single();
        }
    }

    public static void UpdateEmployeeAddress(Employee originalEmployee, string address, string city, string postalcode)
    {
        NorthwindDataContext ndc = new NorthwindDataContext();
        ndc.Employees.Attach(originalEmployee, false);
        originalEmployee.Address = address;
        originalEmployee.City = city;
        originalEmployee.PostalCode = postalcode;
        ndc.SubmitChanges();
    }
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft