SqlDataSource.CacheExpirationPolicy Özellik

Tanım

Süreyle birleştirildiğinde, veri kaynağı denetiminin kullandığı önbelleğin davranışını açıklayan önbellek süre sonu davranışını alır veya ayarlar.

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

Özellik Değeri

DataSourceCacheExpiry

Değerlerden DataSourceCacheExpiry biri. Varsayılan değerdir Absolute .

Örnekler

Aşağıdaki kod örneği, Microsoft SQL Server'daki Northwind veritabanından veri almayı ve verileri önbelleğe alma etkin bir GridView denetimde görüntülemeyi gösterir. CacheExpirationPolicy özelliği değerine ayarlandığındanSliding, değer 20 saniye olsa CacheDuration bile kullanıcılar yeni verileri görmez. Önbelleğe alınan veriler yalnızca son sayfa yüklemesinden bu yana sayfada 20 saniyeden fazla etkinlik olmadığında yenilenir.

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

Açıklamalar

Denetim, SqlDataSource veri önbelleğe almayı destekler. Veriler önbelleğe alınırken yöntemi verileri Select temel alınan veritabanından değil önbellekten alır. Önbelleğin süresi dolduğunda yöntemi, Select temel alınan veritabanından verileri alır ve ardından verileri yeniden önbelleğe alır.

Önbelleğin davranışı ve CacheExpirationPolicy ayarlarının bir bileşimi tarafından CacheDuration belirlenir. CacheExpirationPolicy özelliği değerine ayarlanırsaAbsolute, SqlDataSource ilk veri alma işlemindeki verileri önbelleğe alır, özelliği tarafından CacheDuration belirtilen süre boyunca bellekte tutar ve zaman geçtikten sonra atar. Önbellek daha sonra sonraki işlem sırasında yenilenir. CacheExpirationPolicy özelliği değerine ayarlanırsaSliding, veri kaynağı denetimi ilk veri alma işleminde verileri önbelleğe alır, ancak izleyen her işlem için önbelleği tuttuğu zaman penceresini sıfırlar. Son Select işlemden bu yana değere eşit bir süre boyunca etkinlik yoksa önbelleğin CacheDuration süresi dolar.

Denetim SqlDataSource yalnızca moddayken verileri önbelleğe DataSet alabilir. NotSupportedException Denetim değere DataReader ayarlanırsa ve önbelleğe alma da etkinleştirilirse SqlDataSource yöntemi tarafından Select bir özel durum oluşturulur.

Önemli

Microsoft Windows kimlik doğrulaması altında istemci kimliğe bürünme özelliğini kullandığınızda, veriler ilk kullanıcı verilere eriştiğinde önbelleğe alınır. Başka bir kullanıcı aynı verileri isterse, veriler önbellekten alınır. Veriler, kullanıcının verilere erişimini doğrulamak için veritabanına başka bir çağrı yapılarak alınmaz. Verilere birden fazla kullanıcının erişmesini bekliyorsanız ve her veri alımının veritabanının güvenlik yapılandırmaları tarafından doğrulanmasını istiyorsanız, önbelleğe almayı kullanmayın.

Şunlara uygulanır

Ayrıca bkz.