SignalR SqlDependency прерывается, когда я делаю SqlCommand универсальным - PullRequest
0 голосов
/ 25 апреля 2018

Я использую SignalR для получения обновлений в базе данных. Я попытался сделать свой метод для создания этого универсального, как показано ниже, однако, это нарушает зависимость SQL, поскольку она не срабатывает при изменении в БД. Я сузил источник проблемы до команды SQL, которая, кажется, мешает ей работать.

public IEnumerable<T> GetAllMessages<T>() where T : new()
    {
        var messages = new List<T>();
        using (var connection = new SqlConnection(_connString))
        {
            connection.Open();
            using (var command = new SqlCommand(@"SELECT * FROM [dbo]." + typeof(T).Name, 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())
                {
                    var row = new T();
                    ConvertReaderToRelevantModel(reader, row);
                    messages.Add(row);
                }
            }
        }

        return messages;
    }

Если я изменю команду SQL на фрагмент ниже, она будет работать как положено:

using (var command = new SqlCommand(@"SELECT [ID], 
            [Name], [Number], [DateLastUpdated] FROM [dbo].[HeartBeats]", connection))

Что мешает этому работать и как я могу решить эту проблему?

1 Ответ

0 голосов
/ 25 апреля 2018

typef(T).Name не то, что вы ожидаете.поставить точку останова и посмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...