Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Proprietà ObjectDataSource.EnableCaching

Ottiene o imposta un valore che indica se il controllo di ObjectDataSource ha cache di dati abilitata.

Spazio dei nomi:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)
public virtual bool EnableCaching { get; set; }
<asp:ObjectDataSource EnableCaching="True|False" />

Valore proprietà

Tipo: System.Boolean
true se la cache di dati è abilitata per il controllo origine dati; in caso contrario, false. l'impostazione predefinita è false.
EccezioneCondizione
NotSupportedException

La proprietà di EnableCaching è impostata su true quando il metodo specificato dalla proprietà di SelectMethod restituisce DbDataReader.

Il controllo di ObjectDataSource supporta la cache di dati. Mentre i dati vengono memorizzati nella cache, le chiamate al metodo di Select recuperano i dati dalla cache anziché ObjectDataSource che crea un'istanza dell' oggetto business e che chiama il metodo di dati. Quando la cache scade, il metodo di Select recupera i dati dall' oggetto business e quindi memorizza nella cache i dati di nuovo.

Il controllo di ObjectDataSource automaticamente memorizzare i dati nella cache quando la proprietà di EnableCaching è impostata su true e la proprietà di CacheDuration è impostata su un valore maggiore di 0, che indica il numero di secondi che i dati delle archivia la cache prima della voce della cache vengono rimossi. Un valore di 0 indica una cache infinitamente lungo.

I seguenti tre esempi mostrano una pagina Web, una classe di pagina code-behind e una classe di accesso ai dati che recuperano i record dalla tabella Employees del database Northwind.

Il primo esempio viene illustrata una pagina Web contenente due controlli di ObjectDataSource , un controllo di DropDownList e un controllo di DetailsView . Il primo controllo di ObjectDataSource e il controllo di DropDownList vengono utilizzati per recuperare e visualizzare i nomi dei dipendenti dal database. Il secondo controllo di ObjectDataSource e il controllo di DetailsView vengono utilizzati per recuperare e visualizzare il record di un dipendente selezionato dall' utente.

La memorizzazione nella cache è abilitato per il controllo di ObjectDataSource . Di conseguenza, ogni record viene recuperato solo una volta dal database. La proprietà di CacheKeyDependency è impostata su “EmployeeDetails„, ma qualsiasi valore stringa può funzionare come chiave. La pagina Web nonché un controllo di Button che l'utente può fare clic per la scadenza dei dati memorizzati nella cache.


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


In il secondo esempio viene illustrato un gestore per l'evento di Load e un gestore per l'evento di Click del controllo di Button . Il gestore eventi di Load crea un elemento della cache con un set di chiave al valore di CacheKeyDependency . Il gestore eventi di Click rimuove l'elemento della cache in cui la chiave è uguale al valore di CacheKeyDependency . Quando l'elemento della cache viene rimosso, tutti i dati memorizzati nella cache dipendenti dalla chiave sono scaduti.


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();
}


Il terzo esempio viene illustrata la classe di accesso ai dati che interagisce con il database Northwind. La classe utilizza LINQ per eseguire una query nella tabella Employees. L'esempio richiede una classe LINQ to SQL che rappresenta il database Northwind e la tabella Employees. Per ulteriori informazioni, vedere How to: Create LINQ to SQL Classes in a Web Application.


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();
    }
}


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
© 2013 Microsoft. Tutti i diritti riservati.