SqlDataSource.CacheExpirationPolicy Свойство

Определение

Возвращает или задает поведение при истечении срока действия кэша, которая в сочетании со сроком кэширования описывает принципы работы кэша, используемого элементом управления источником данных.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

Значение свойства

Одно из значений перечисления DataSourceCacheExpiry.One of the DataSourceCacheExpiry values. Значением по умолчанию является Absolute.The default is the Absolute value.

Примеры

В следующем примере кода показано, как получить данные из базы данных Northwind в Microsoft SQL Server и отобразить их в GridView элементе управления с включенным кэшированием данных.The following code example demonstrates how to retrieve data from the Northwind database in Microsoft SQL Server and display it in a GridView control, with data caching enabled. Так как CacheDuration для свойства задано значение, пользователи не будут видеть новые данные, даже если это значение равно 20 секундам. Sliding CacheExpirationPolicyBecause the CacheExpirationPolicy property is set to the Sliding value, users will not see fresh data even though the CacheDuration value is 20 seconds. Кэшированные данные обновляются только при отсутствии активности на странице более 20 секунд с момента последней загрузки страницы.The cached data is refreshed only if there is no activity on the page for more than 20 seconds since the last page load.

<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                EnableCaching="True"
                CacheDuration="20"
                CacheExpirationPolicy="Sliding"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
            </asp:SqlDataSource>

            <asp:GridView
                id="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataSourceID="SqlDataSource1">
                <columns>
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                    <asp:BoundField HeaderText="Title" DataField="Title" />
                </columns>
            </asp:GridView>

        </form>
    </body>
</html>
<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                EnableCaching="True"
                CacheDuration="20"
                CacheExpirationPolicy="Sliding"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
            </asp:SqlDataSource>

            <asp:GridView
                id="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataSourceID="SqlDataSource1">
                <columns>
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                    <asp:BoundField HeaderText="Title" DataField="Title" />
                </columns>
            </asp:GridView>

        </form>
    </body>
</html>

Комментарии

SqlDataSource Элемент управления поддерживает кэширование данных.The SqlDataSource control supports data caching. При кэшировании данных Select метод получает данные из кэша, а не из основной базы данных.While data is cached, the Select method retrieves data from the cache rather than from the underlying database. По истечении срока действия Select кэша метод получает данные из базовой базы данных, а затем кэширует их снова.When the cache expires, the Select method retrieves data from the underlying database, and then caches the data again.

Поведение кэша определяется сочетанием CacheDuration параметров и. CacheExpirationPolicyThe behavior of the cache is determined by a combination of the CacheDuration and CacheExpirationPolicy settings. Если свойство имеет Absolute значение, то SqlDataSource кэширует данные при первой операции извлечения данных, сохраняет их в памяти в течение периода времени, указанного CacheDuration свойством, а затем удаляет его после CacheExpirationPolicy Плавное замедленное.If the CacheExpirationPolicy property is set to the Absolute value, the SqlDataSource caches data on the first data retrieval operation, holds it in memory for the amount of time that is specified by the CacheDuration property, and then discards it after the time has lapsed. Затем кэш обновляется во время следующей операции.The cache is then refreshed during the next operation. Если свойству присвоено Sliding значение, элемент управления источника данных кэширует данные при первой операции получения данных, но сбрасывает временное окно, в котором хранится кэш для каждой последующей операции. CacheExpirationPolicyIf the CacheExpirationPolicy property is set to the Sliding value, the data source control caches data on the first data retrieval operation, but resets the time window that it holds the cache for each subsequent operation. Срок действия кэша истекает, если нет активности в течение времени, равного CacheDuration значению с момента последней Select операции.The cache expires, if there is no activity for a time that is equal to the CacheDuration value since the last Select operation.

Элемент управления может кэшировать данные только DataSet в режиме. SqlDataSourceThe SqlDataSource control can cache data only when in the DataSet mode. Исключение вызывается Select методом, если SqlDataSource для DataReader элемента управления задано значение, а также включено кэширование. NotSupportedExceptionA NotSupportedException exception is thrown by the Select method, if the SqlDataSource control is set to the DataReader value and caching is also enabled.

Важно!

При использовании олицетворения клиента при проверке подлинности Microsoft Windows данные кэшируются, когда первый пользователь обращается к данным.When you are using client impersonation under Microsoft Windows authentication, the data is cached when the first user accesses the data. Если другой пользователь запрашивает одни и те же данные, данные извлекаются из кэша.If another user requests the same data, the data is retrieved from the cache. Данные не извлекаются путем совершения другого обращения к базе данных для проверки доступа пользователя к данным.The data is not retrieved by making another call to the database to verify the user's access to the data. Если предполагается, что доступ к данным будет осуществляться более чем одним пользователем, и каждый из них должен быть проверен на наличие данных конфигураций безопасности для базы данных, не используйте кэширование.If you expect more than one user to access the data, and you want each retrieval to the data to be verified by the security configurations for the database, do not use caching.

Применяется к

Дополнительно