我在ASP.NET MVC 5.2中使用signalR和SQL Dependency进行实时通知
我从此链接实现SignalR
http://venkatbaggu.com/signalr-database-update-notifications-asp-net-mvc-usiing-sql-dependency/
不,我有一个问题,在这种情况下,对表,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;
}
最佳答案
您可以使用SqlDependency函数,例如:
void sqlDep_OnChange(object sender, SqlNotificationEventArgs e)
{
if (e.Type == SqlNotificationType.Change && e.Info==SqlNotificationInfo.Insert)
{
// your code
}
}
关于c# - SignalR和sql依赖项仅在插入时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35177345/