所以我在 OracleCommand
中偶然发现了一个我称之为怪癖的东西。默认情况下 BindByName
设置为 false
。在这种情况下,它们将按照添加到 OracleCommand
的顺序应用于您的查询,而不是按照参数的名称。
这让我很伤心,直到我发现参数没有按照我的预期应用于我的查询。
我为什么要这样做?我在这里遗漏了显着的性能影响,还是只是为了与以前版本的 OracleCommand
兼容?
最佳答案
如果您想将不同的值/参数绑定(bind)到两个或多个具有相同名称的绑定(bind),您可能需要按位置进行绑定(bind)。
尽管我无法解释为什么您作为开发人员不想将相同的参数绑定(bind)到它们时将绑定(bind)命名为相同的。
这很可能是由于以前版本的 OracleCommand 中不存在命名绑定(bind)的遗留功能,当引入命名绑定(bind)时,默认使用位置绑定(bind)来防止遗留代码的破坏。
关于c# - 为什么我要按位置绑定(bind) OracleCommand 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494676/