SqlDataSource.SqlCacheDependency Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece una cadena delimitada por puntos y comas que indica las bases de datos y las tablas que deben utilizarse para la dependencia de caché de Microsoft SQL Server.
public:
virtual property System::String ^ SqlCacheDependency { System::String ^ get(); void set(System::String ^ value); };
public virtual string SqlCacheDependency { get; set; }
member this.SqlCacheDependency : string with get, set
Public Overridable Property SqlCacheDependency As String
Valor de propiedad
Cadena que indica las bases de datos y las tablas que deben utilizarse para la dependencia de caché de SQL Server.
Ejemplos
En el ejemplo de código siguiente se muestra cómo crear una dependencia de caché de SQL Server y establecer la SqlCacheDependency propiedad de un SqlDataSource control . En este ejemplo, la base de datos se sondea cada 120 segundos. Si los datos de la tabla Empleados de Northwind Traders cambian durante ese tiempo, los datos almacenados en caché por el SqlDataSource control y mostrados por el GridView control se actualizan mediante el SqlDataSource control la próxima vez que se sondee la base de datos.
<%@ Page language="c#" %>
<!--
The page uses an example configuration that includes
connection strings and a defined SqlCacheDependecy.
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyNorthwind"
connectionString="Data Source="localhost";Integrated Security="SSPI";Initial Catalog="Northwind""
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency enabled="true">
<databases>
<add
name="Northwind"
connectionStringName="MyNorthwind"
pollTime="120000" />
</databases>
</sqlCacheDependency>
</caching>
</system.web>
</configuration>
-->
<!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" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="SqlDataSource1" />
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
selectcommand="SELECT EmployeeID,FirstName,Lastname FROM Employees"
enablecaching="True"
cacheduration="300"
cacheexpirationpolicy="Absolute"
sqlcachedependency="Northwind:Employees" />
</form>
</body>
</html>
<%@ Page language="vb" %>
<!--
The page uses an example configuration that includes
connection strings and a defined SqlCacheDependecy.
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyNorthwind"
connectionString="Data Source="localhost";Integrated Security="SSPI";Initial Catalog="Northwind""
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency enabled="true">
<databases>
<add
name="Northwind"
connectionStringName="MyNorthwind"
pollTime="120000" />
</databases>
</sqlCacheDependency>
</caching>
</system.web>
</configuration>
-->
<!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" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="SqlDataSource1" />
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
selectcommand="SELECT EmployeeID,FirstName,Lastname FROM Employees"
enablecaching="True"
cacheduration="300"
cacheexpirationpolicy="Absolute"
sqlcachedependency="Northwind:Employees" />
</form>
</body>
</html>
Comentarios
El SqlDataSource control admite una directiva de expiración opcional basada en el SqlCacheDependency objeto de la caché de datos (el servicio debe configurarse para el servidor de bases de datos).
La SqlCacheDependency cadena identifica las bases de datos y las tablas según el mismo formato que usa la @ Page
directiva , donde la primera parte de la cadena es una cadena de conexión a una base de datos de Microsoft SQL Server, seguida de un delimitador de dos puntos y, por último, el nombre de la tabla de base de datos (por ejemplo, "connectionstring1:table1"
). Si la SqlCacheDependency propiedad depende de más de una tabla, los pares de nombre de cadena y tabla de conexión están separados por punto y coma (por ejemplo, "connectionstring1:table1";connectionstring2:table2"
).
Importante
Cuando se usa la suplantación de cliente en la autenticación de Microsoft Windows, los datos se almacenan en caché cuando el primer usuario accede a los datos. Si otro usuario solicita los mismos datos, los datos se recuperan de la memoria caché. Los datos no se recuperan realizando otra llamada a la base de datos para comprobar el acceso del usuario a los datos. Si espera que más de un usuario acceda a los datos y desea que las configuraciones de seguridad de la base de datos comprueben cada recuperación a los datos, no use el almacenamiento en caché.