Я пытаюсь использовать сигнализатор с sqldependency. Я проверил с:
select ACTION_DATE,Id,Type_ID,Customer_ID, Phone, Message, User_ID,
Status_ID,CREATED_ON,Description from [TLS].[Notification] where user_id='"
+ Parameters.UserID + "'"
и все работает нормально, и мое событие срабатывает, когда я что-то изменил в БД.
Но когда я попытался с левым соединением, мое On_Change
событие не срабатывает:
select c.DISPLAY_NAME as CustomerName, n.ACTION_DATE,n.Id,n.Type_ID,
n.Customer_ID, n.Phone, n.Message, n.User_ID,
n.Status_ID,n.CREATED_ON,n.Description
from [TLS].[Notification] AS n Left outer join [TLS].[Customer] AS c
on c.ID=n.CUSTOMER_ID
where user_id='" + Parameters.UserID + "' and n.STATUS_ID<>'3'
это мой метод
var messages = new List<SqlDataReader>();
using (var connection = new SqlConnection(_dbContext.Database.Connection.ConnectionString))
{
connection.Open();
using (var command = new SqlCommand(query, connection))
{
command.Notification = null;
var dependency = new SqlDependency(command);
var reader = command.ExecuteReader();
dependency.OnChange += new OnChangeEventHandler(SqlNotification.dependency_OnChange);
return _dbContext.Database.SqlQuery<T>(query);
}
}