SqlDataSource.CacheExpirationPolicy プロパティ

定義

存続期間と組み合わせた場合の、データ ソース コントロールが使用するキャッシュの動作を記述するキャッシュの有効期限の動作を取得または設定します。

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

DataSourceCacheExpiry 値のいずれか 1 つ。 既定値は、Absolute です。

次のコード例は、Microsoft SQL Serverで Northwind データベースからデータを取得し、データ キャッシュを有効にしてコントロールにGridView表示する方法を示しています。 CacheExpirationPolicyこのプロパティは値にSliding設定されているため、値が 20 秒であってもCacheDuration、ユーザーに新しいデータは表示されません。 キャッシュされたデータは、最後のページの読み込みから 20 秒を超える間、ページにアクティビティがない場合にのみ更新されます。

<!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 データ キャッシュをサポートします。 データがキャッシュされている間、 Select このメソッドは基になるデータベースからではなく、キャッシュからデータを取得します。 キャッシュの有効期限が切れると、メソッドは Select 基になるデータベースからデータを取得し、データをもう一度キャッシュします。

キャッシュの動作は、設定とCacheExpirationPolicy設定のCacheDuration組み合わせによって決まります。 プロパティが CacheExpirationPolicy 値に Absolute 設定されている場合、 SqlDataSource 最初のデータ取得操作でデータがキャッシュされ、プロパティで CacheDuration 指定された時間メモリ内に保持され、時間が経過した後に破棄されます。 その後、キャッシュは次の操作中に更新されます。 プロパティが CacheExpirationPolicy 値に Sliding 設定されている場合、データ ソースコントロールは最初のデータ取得操作でデータをキャッシュしますが、後続の操作ごとにキャッシュを保持する時間枠をリセットします。 最後Selectの操作以降の値と等しいCacheDuration時間のアクティビティがない場合、キャッシュの有効期限が切れます。

コントロールは SqlDataSource 、モードの場合にのみデータを DataSet キャッシュできます。 NotSupportedExceptionコントロールが値にSelect設定DataReaderされ、キャッシュも有効になっている場合SqlDataSourceは、メソッドによって例外がスローされます。

重要

Microsoft Windows 認証 でクライアントの偽装を使用している場合、最初のユーザーがデータにアクセスすると、データがキャッシュされます。 別のユーザーが同じデータを要求した場合、データはキャッシュから取得されます。 データは、ユーザーのデータへのアクセスを確認するためにデータベースを別の呼び出しで取得しません。 複数のユーザーがデータにアクセスする必要があり、データベースのセキュリティ構成によってデータを取得するたびに検証されるようにする場合は、キャッシュを使用しないでください。

適用対象

こちらもご覧ください