Почему зависимость SQL не запускает событие с предложением group by и top ?
привет
я работаю с зависимостями Signal r и sql . я создал одну демо-версию для такого требования, что если я обновлюсь в базе данных . он будет автоматически изменять содержимое пользовательского интерфейса. он работает нормально, но когда я пытался использовать предложение group by, top или Rownum . Событие изменения зависимости Sql не срабатывает и не отражает никаких изменений в пользовательском интерфейсе.
readonly string _connString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; public IEnumerable<productinfo> GetAllMessages() { var ProductInfo = new List<productinfo>(); using (var connection = new SqlConnection(_connString)) { connection.Open(); using (var command = new SqlCommand(@"[dbo].[GetAllRecordsWithParams]", connection)) { command.Notification = null; command.CommandType = CommandType.StoredProcedure; var dependency = new SqlDependency(command); SqlDependency.Start(_connString); dependency.OnChange += new OnChangeEventHandler(dependency_OnChange); if (connection.State == ConnectionState.Closed) connection.Open(); var reader = command.ExecuteReader(); while (reader.Read()) { ProductInfo.Add(item: new ProductInfo { CustomerID = (string)reader["CustomerID"], ContactName = (string)reader["ContactName"], Phone = (string)reader["Phone"], ProductName = (string)reader["ProductName"], UnitPrice = (decimal)reader["UnitPrice"], IsDeleted = (bool)reader["IsDeleted"] }); } } connection.Close(); connection.Dispose(); } return ProductInfo.ToList(); } private void dependency_OnChange(object sender, SqlNotificationEventArgs e) { if (e.Type == SqlNotificationType.Change) { MessagesHub.SendMessages(); } }
Изменения Sql ::
ALTER PROCEDURE [dbo].[GetMixItems] -- Add the parameters for the stored procedure here AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. -- Insert statements for procedure here select dm.MessageID, dm.Message, dm.EmptyMessage, dm.Date, dt.MessageExtendedText,dt.IsRight from [dbo].[Messages] as dm inner join [dbo].[TestTable] as dt on dm.MessageID = dt.MessageTestId where IsRight = 0 group by dm.MessageID, dm.Message, dm.EmptyMessage, dm.Date, dt.MessageExtendedText,dt.IsRight order by dm.MessageID desc END
Что я уже пробовал:
я перепробовал все, о чем упоминал ... пожалуйста, скажите мне решение этой проблемы. как сделать такое положение, работать с SQL зависимостей...