c# - 如何最小化 SqlTableDependency 中的调用
问题描述
如果在一个表中插入 100 行,那么应该只发送一个调用来获取值。
public static void InitiateSQLTableDependency()
{
try
{
var mapper = new ModelToTableMapper<DeviceValuesProperties>();
mapper.AddMapping(deviceValue => deviceValue.DeviceId, "DeviceId");
mapper.AddMapping(deviceValue => deviceValue.TimeStamp, "TimeStamp");
tableDependency = new SqlTableDependency<DeviceValuesProperties>(connectionString, "DeviceValues", mapper);
tableDependency.OnChanged += OnDependencyChange;
tableDependency.OnError += OnDependencyError;
tableDependency.Start();
isSQLDependencyStart = true;
}
catch (Exception exception)
{
throw exception;
}
}
解决方案
可悲的是,它不是那样工作的(假设您使用的是这个库 [ https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependency]甚至是标准的 SqlDependency。你希望它多久触发一次?每 100 行?还是每 x 个时间单位?为什么不经常轮询表?如果您希望它自动但批量 - 您应该查看 CDC、CDT 或自己编写触发器;
推荐阅读
- html - css选择器之间星号(*)的含义
- r - R - 一次重命名所有列值
- mysql - 转换 SQL SERVER 表
- java - 属性值相同的不同对象可以在Java中具有相同的哈希码吗
- javascript - 获取 iframe 中地图的经纬度 onclick
- javascript - 如何在 vuex 商店的 getter 方法中使用突变的功能
- service-worker - 如何在服务人员中设置自定义 userAgent?
- java - Map Db compact 方法的使用方法以及它如何用于清除内存
- python - 用于注释短语的并行列表
- c# - 在 C# 中从 ironpython 调用第 3 方模块 python 函数