SignalR和sql依赖项仅在插入时

jef*_*jef 5 c# sql-server asp.net signalr

我使用SignalR和SQL Dependency在asp.net mvc 5.2中SignalR通过此链接实现实时通知

http://venkatbaggu.com/signalr-database-update-notifications-asp-net-mvc-usiing-sql-dependency/
Run Code Online (Sandbox Code Playgroud)

不,我有一个问题,在这种情况下,对表,SQL依赖项运行和返回记录进行任何更改,我只想在插入表时触发SQL依赖项并返回记录,

因为在此表中,我在面板中更新了用户提交的SQL依赖项时,在面板上的用户读取通知中更新了读取通知的文件位,

我如何只为插入表定义SQL依赖关系?

谢谢您的帮助

我用这个代码

 public IEnumerable<Messages> GetAllMessages()
        {
            var messages = new List<Messages>();
            using (var connection = new SqlConnection(_connString))
            {
                connection.Open();
                using (var command = new SqlCommand(@"SELECT [Id],[Player_Id], [Message] FROM [dbo].[Notification] WHERE [Player_Id] = " + PlayerLogin.userId + " AND PlayerIsRed = 0", 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 { Id = (int)reader["Id"], Message = (string)reader["Message"], Player_Id = (int)reader["Player_Id"] });
                    }
                }

            }
            return messages;
        }
Run Code Online (Sandbox Code Playgroud)

Sun*_*ary 3

您可以使用 SqlDependency 函数,如下所示:-

     void sqlDep_OnChange(object sender, SqlNotificationEventArgs e)
            {
                if (e.Type == SqlNotificationType.Change && e.Info==SqlNotificationInfo.Insert)
                {
                    // your code
                }
            }
Run Code Online (Sandbox Code Playgroud)