【发布时间】:2020-05-27 08:41:20
【问题描述】:
在不修改要运行的查询的情况下修改SqlCommand 何时保存?
例如,当我有
SqlCommand cmd = getCommand();
con.executeNonQueryAsync();
//later
modifyParameters(cmd);
被执行的 NonQuery 是否有可能看到修改后的参数?如果有,在返回任务完成之前是否有任何同步选项,之后修改命令保证不修改run语句?
【问题讨论】:
-
你为什么要这样做?
-
is there any synchronization option- 是的,await con.executeNonQueryAsync();。 -
@GuruStron async is not about threads.
-
为现有连接创建新的 sql 命令可能是所有操作中最轻量级的操作。相反,对同一连接同时有几个未完成的请求可能很容易成为问题。我不认为 SqlConnection 支持它,如果支持,它可能是通过serialized execution 模拟的。
-
@Martijn 并且它不能 =) 您是否对代码进行了基准测试以确保创建多个命令是实际瓶颈?如果是,则安全选项是在完成后拥有一个
SqlCommand池以供重复使用。
标签: c# sqlcommand