避免使用 dapper 的 inlnine SQL 会更好吗?

Is it better to avoid inlnine SQL with dapper?

我考虑过使用 dapper,但我仍然不喜欢使用内联 SQL。是否有任何关于 stored procedures 的想法,因此如果查询出现问题,则不需要 recompilation,而只需更改数据库中的 stored procedure .是否有任何替代方案,例如将所有 SQL queries 保留在它自己的 class 库中?

Dapper 支持这两个选项,对此主题没有意见。

您的问题表明您的代码库部署很棘手。如果这是客户端代码,那可能有意义。对于服务器端代码,重新部署应用程序通常比更改存储过程更容易 - 理想情况下通过 TeamCity 等工具单击一次。当然,您的存储过程应该具有流程/部署控制。

在 class 库中拥有 SQL 不会给你带来太多好处:你仍然需要重新部署才能获得更改。当然,将面向数据的代码与 UI(等)代码放在单独的程序集中可能是有意义的,但这是本地架构决定。