如何检查数据库字典是否发生了变化?

时间:2015-07-27 09:01:50

标签: c# sql web-services dictionary

在我的应用程序中,我必须操作几个字典。其中很少有包含数百条记录。我不希望每次启动应用程序时都读取字典,因为它很耗时(数据通过Web服务远程访问),内容字典不会经常更改。所以我将字典的副本存储在本地缓存中。

检查字典中的数据是否已更改以及是否应更新本地缓存的最佳方法是什么? 我没有可能修改数据库字典的结构(没有时间戳)。

1 个答案:

答案 0 :(得分:0)

您可以使用SqlDependency类,并在数据库中更改数据时接收通知。

void Setup()
{
    using (var command = new SqlCommand(
        "SELECT Key, Value FROM dbo.SomeTable", 
        connection))
    {

        var dependency = new SqlDependency(command);
        dependency.OnChange += new
           OnChangeEventHandler(OnDependencyChange);

        using (var reader = command.ExecuteReader())
        {
            // Process the DataReader.
        }
    }
}

void OnDependencyChange(object sender, 
   SqlNotificationEventArgs e )
{
   // Something has changed 
}