Я хотел бы добавить SqlCacheDependency в мое приложение.Поэтому я решил создать небольшой проект tesp и столкнулся с трудностями.Я использую MSSQL 2008. Я создаю новую базу данных с таблицей строк и добавил несколько строк.Я выполнил:
ALTER DATABASE ForTest SET ENABLE_BROKER
в студии managmeng.
Страница Aspx:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Cache["Lines"] == null)
{
string connectionString =
WebConfigurationManager.ConnectionStrings["ForTest"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
string query = "SELECT dbo.Lines.Id, dbo.Lines.Value FROM dbo.Lines";
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "Lines");
SqlCacheDependency empDependency = new SqlCacheDependency(cmd);
Cache.Insert("Lines", ds, empDependency);
}
}
}
protected void btnResult_OnClick(object sender, EventArgs e)
{
var result = Cache["Lines"];
}
}
Я запускаю эту страницу и добавляю строки в Cache, затем добавляю строку в Managment Studio, и когда я нажимаю кнопку, я ожидаю, что кеш будет изменен, но кешостается старымЯ не могу найти то, что я делаю неправильно :( Не могли бы вы дать мне подсказку, как я могу решить эту проблему?
Спасибо
Обновление: я не могу сказать, что в global.aspx я запускаю:
SqlDependency.Start(
WebConfigurationManager.ConnectionStrings["ForTest"].ConnectionString
);