Как получить только один столбец, измененный из SqlTableDependency - PullRequest
0 голосов
/ 06 сентября 2018

Когда в моей таблице данных есть какие-либо изменения UserSubsidiaryFunction (вставить, обновить или удалить), я получаю всю таблицу с этим кодом:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    //using SqlTableDependency
    using (var tableDependency = new SqlTableDependency<UserSubsidiaryFunction>(connectionString, "UserSubsidiaryFunction"))
    {
        tableDependency.OnChanged += TableDependency_Changed;
        tableDependency.OnError += TableDependency_OnError;
        tableDependency.Start();

        Console.WriteLine("Waiting for receiving notifications . . .");
        Console.WriteLine("Press a key to stop");
        Console.ReadKey();

        tableDependency.Stop();
    }                  
}

и:

static void TableDependency_Changed(object sender, RecordChangedEventArgs<UserSubsidiaryFunction> e)
{
    Console.WriteLine(Environment.NewLine);

    if (e.ChangeType != ChangeType.None)
    {
        var changedEntity = e.Entity;

        Console.WriteLine($"DML operation : {e.ChangeType}");
        Console.WriteLine($"pk_UserSubsidiaryFunction new value : {e.Entity.fk_Subsidiary}");
        Console.WriteLine($"fk_User : {changedEntity.fk_User}");
        Console.WriteLine($"fk_Subsidiary : {changedEntity.fk_Subsidiary}");
        Console.WriteLine(Environment.NewLine);
    }
}

Но когда есть какие-либо изменения, я хотел бы получить только имя столбца, который был изменен. Это возможно с sqlTableDependency? Если нет, то возможно с SqlDependency? Как? Спасибо

...