gpt4 book ai didi

.net - 由于 sproc 和调用代码之间的不匹配,我如何导致构建错误?

转载 作者:行者123 更新时间:2023-12-04 06:49:25 25 4
gpt4 key购买 nike

我有一个 .NET 类(用于讨论,ClassA),它调用 SQL Server 存储过程(用于讨论,fooSproc),使用 SqlDataReader 处理结果。处理行,并使用返回结果集中列的名称引用列。例如,其中 dr 是 SqlDataReader,类似于 dr["column_foo"]。

现在,例如,有人检查对 ClassA 的更改,以便它在 fooSproc 返回的结果集中查找 column_bar。但是,那个人忽略了 checkin 对 fooSproc 的更改,因此它实际上会返回 column_bar。

问题:代码编译,但由于缺少列而在运行时失败。

有没有办法使这种情况导致生成构建错误?自然而然,构建验证/验收测试在这里很有意义,但更早地捕获它会更便宜。请假装即使是肤浅的代码审查也超出了范围。

最佳答案

我真的不知道仅使用 .Net 和 SQL 就可以做到这一点,因为您的代码必须在编译时连接到您的数据库。

也就是说,当您构建代码时,它必须(此时)有权访问数据库,并尝试解析您的查询。 VS 不会这样做。 Linq-to-SQL 和 Entity Framework 可能会让您更接近,但我认为它们甚至无法帮助您处理特定场景(对存储过程的更改)。

您可能能够使用 .NET SMO(Sql 管理对象)创建一些东西,但即使这样也需要连接到数据库才能做任何好事......潜在的问题似乎是您需要检查存储过程仍然返回它最初编写时所做的事情,我认为 SQL 不会以任何易于访问的形式提供这种数据(除了查看 proc)。

关于.net - 由于 sproc 和调用代码之间的不匹配,我如何导致构建错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com