C# 如何从SqlTableDependency中仅更改一列

C# 如何从SqlTableDependency中仅更改一列,c#,.net,sqldependency,C#,.net,Sqldependency,当我的数据表UserSubsidiaryFunction(插入、更新或删除)中有任何更改时,我将使用以下代码获取所有表: using (SqlConnection connection = new SqlConnection(connectionString)) { //using SqlTableDependency using (var tableDependency = new SqlTableDependency<UserSubsidiaryFunction>

当我的数据表
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();
    }                  
}
使用(SqlConnection连接=新的SqlConnection(connectionString))
{
//使用SqlTableDependency
使用(var tableDependency=newsqltabledependency(connectionString,“usersubdiaryfunction”))
{
tableDependency.OnChanged+=tableDependency\u已更改;
tableDependency.OnError+=tableDependency\u OnError;
tableDependency.Start();
控制台.WriteLine(“等待接收通知…”);
Console.WriteLine(“按键停止”);
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);
    }
}
static void TableDependency\u已更改(对象发送方,RecordChangedEventArgs e)
{
Console.WriteLine(Environment.NewLine);
如果(例如ChangeType!=ChangeType.None)
{
var changedEntity=e.实体;
WriteLine($“DML操作:{e.ChangeType}”);
WriteLine($“pk_UserSubsidiaryFunction新值:{e.Entity.fk_subsidiaryfunction}”);
Console.WriteLine($“fk_User:{changedEntity.fk_User}”);
Console.WriteLine($“fk_Subsidiary:{changedEntity.fk_Subsidiary}”);
Console.WriteLine(Environment.NewLine);
}
}

但是当有任何更改时,我只希望得到一个被修改的列名。可以使用
sqlTableDependency
?如果不是,则可以使用
SqlDependency
?怎么用?谢谢

这会包含在
RecordChangedEventArgs
上的
MessageBag
UserInterestedColumns
中吗?现在,所有列(即使是未更改的列)都在RecordChangedEventArgs中,所以我不知道哪一列已更改,哪一列未更改