具有分组依据的SQLDependency不起作用

时间:2016-11-25 07:29:42

标签: c# sql-server sqldependency

我有以下SqlDependency代码。每次执行数据读取器时都会调用下面的回调函数。当我在表中更改某个值时,不会执行此回调函数。

 public IEnumerable<Messages> GetAllMessages()
    {
        var messages = new List<Messages>();
        using (var connection = new SqlConnection(_connString))
        {
            connection.Open();
            using (var command = new SqlCommand("SELECT SUM(MessageID) FROM [dbo].[Messages] group by Message", connection))
            {
                command.Notification = null;

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

                if (connection.State == ConnectionState.Closed)
                    connection.Open();

                var reader = command.ExecuteReader();

                while (reader.Read())
                {
                   // messages.Add(item: new Messages { MessageID = (int)reader["MessageID"], Message = (string)reader["Message"], EmptyMessage = reader["EmptyMessage"] != DBNull.Value ? (string)reader["EmptyMessage"] : "", MessageDate = Convert.ToDateTime(reader["Date"]) });
                }
            }

        }
        return messages;
    }

回调:

 private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
        {
            if (e.Type == SqlNotificationType.Change)
            {
                MessagesHub.SendMessages();
            }
        }

请帮助!

0 个答案:

没有答案